vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest poniedziałek, 29 kwietnia 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Zaznaczanie wybranych arkuszy i ich kopiowanie do innego pliku


otwartyotwarty rozpoczął: gosuansa postów: 5



napisał: Trebor
postów: 1209


umieszczony:
28 czerwca 2012
16:46

  
Funkcja Int zwraca część całkowitą liczby.
Jeśli chcemy zapisać do tablicy co drugą nazwę arkusza to musimy określić z ilu elementów będzie się składać tablica. I wymyśliłem sobie takie działanie
ReDim table(0 To Int((Sheets.Count - 0.5) / 2))


Następna linia, o którą pytasz musi nam podać indeks tablicy do której zapiszemy nazwę. Można by prościej np. indeks = indeks +1 wyliczany przed linią next jeśli tablica ma być indeksowana od 0. Jednak mnie bardziej odpowiadało
table(Int(i / 2)) = Sheets(i).Name

gdyż zbędna jest tu dodatkowa zmienna.
I tak dla pierwszego arkusza indeks wyniesie int(1 / 2) = 0
dla trzeciego int(3 / 2) = 1
dla piątego int(5 / 2) = 2
dla siódmego int(7 /2) = 3
i tak dalej
napisał: gosuansa
postów: 19


umieszczony:
28 czerwca 2012
10:16

  
ReDim table(0 To Int((Sheets.Count - 0.5) / 2)) ' moglbys mi napisać co oznacza ta linia?a szczególnie to: Int((Sheets.Count - 0.5) / 2)
For i = 1 To Sheets.Count Step 2
table(Int(i / 2)) = Sheets(i).Name'i co oznacza to: Int(i / 2)
Next i

dzieki
napisał: gosuansa
postów: 19


umieszczony:
25 czerwca 2012
21:14

  
Wielkie dzieki.
napisał: Trebor
postów: 1209


umieszczony:
25 czerwca 2012
16:44

  
Jeśli znasz arkusze do kopiowania to można tak:
Sub arra()
Sheets(Array("Arkusz1", "Arkusz3")).Copy
End Sub


Gdy trzeba je wybrać, np. co drugi to można tak:
Sub talica()
Dim i As Integer, table() As String
ReDim table(0 To Int((Sheets.Count - 0.5) / 2))
For i = 1 To Sheets.Count Step 2
        table(Int(i / 2)) = Sheets(i).Name
            Next i

Sheets(table).Copy
End Sub

napisał: gosuansa
postów: 19


umieszczony:
25 czerwca 2012
09:26

  
Witam,
Mam plik a w nim kilkadziesiat arkuszy i chciałbym z niego skopiowac do innego pliku wybrane arkusze ale za jednym razem a nie kazdy z arkuszy z osobna. wiem ze latwo byloby to zrobić gdyby te wybrane arkusze byly obok siebie, a jak napisac w makrze jesli wybrane zakladki znajdowalyby sie w tym pliku w roznych miejscach nie obok siebie?
dzieki za pomoc

Pzdr
Robert


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z