Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

EXCEL 2003 - uklanjanje referenci sa drugih fajlova i/ili šitova

[es] :: Office :: Excel :: EXCEL 2003 - uklanjanje referenci sa drugih fajlova i/ili šitova

[ Pregleda: 2231 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon EXCEL 2003 - uklanjanje referenci sa drugih fajlova i/ili šitova24.06.2008. u 16:59 - pre 192 meseci
Pozdrav,
imama jedan kompleksan excel fajl u kojem imam na jednom šitu prilično mnogo formula koje predstavljaju međuzbirove, kao i formule koje referenciraju na ćelije i pivot tabele iz drugih šitova. Hteo bih da napravim makro koji će iskopirati šit tako da ostanu formule koje referenciraju polja iz istog šita, a da umesto formula koje referenciraju podatke iz drugih šitova prepišem samo vrednosti.

Znam da postoje Formula i Value property za aktivnu ćeliju, ali me interesuje da li postoji funkcija koja parsira formulu tako da otkrije referenciranje polja iz drugog šita.

Možda je jednostavnije da tražim u formuli string "!", ali ne znam da li će mi to rešiti problem.

VBA sam učio samo na osnovu snimanja makroa i helpa koji ide uz Excel, tako da bi mi dobro došao savet iskusnijeg Excel programera.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: EXCEL 2003 - uklanjanje referenci sa drugih fajlova i/ili šitova25.06.2008. u 14:15 - pre 192 meseci
Rešio sam problem sledećim programčićem:

Code:

Sub Test()
   Dim MyCellContents(1 To 96, 1 To 63) As String

   Windows("Source.xls").Activate
   For i = 1 To 96
      For j = 1 To 63
         MyCellContents(i, j) = ActiveSheet.Cells(i, j).Formula
         If Len(MyCellContents(i, j)) > 0 Then
            If Mid(MyCellContents(i, j), 1, 1) = "=" Then
               If InStr(MyCellContents(i, j), "!") > 0 Then
                  MyCellContents(i, j) = ActiveSheet.Cells(i, j).Value
               End If
            End If
         End If
      Next j
   Next i
   
   Windows("Destination.xls").Activate
   For i = 1 To 96
      For j = 1 To 63
         If Len(MyCellContents(i, j)) > 0 And Mid(MyCellContents(i, j), 1, 1) = "=" Then
            ActiveSheet.Cells(i, j).Formula = MyCellContents(i, j)
         Else
            ActiveSheet.Cells(i, j).Value = MyCellContents(i, j)
         End If
      Next j
   Next i

End Sub


Ukratko, kopira se 63 kolone i 96 redova iz Source u Destinantion tako da se reference na druge šitove iz Source fajla zamenjuju vrednostima formula...

Možda će nekome koristiti, meni je uradilo posao.
 
Odgovor na temu

[es] :: Office :: Excel :: EXCEL 2003 - uklanjanje referenci sa drugih fajlova i/ili šitova

[ Pregleda: 2231 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.