Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA kopiowanie się wysypuje ale nie zawsze

17 Lut 2020 15:16 132 4
  • Poziom 2  
    Witam,
    po uruchomieniu poniższego kodu, występuje błąd Metoda pastespecial klasy range nie powiodła się (na etapie pierwszego wklejania). Gdy puszcze drugi raz makro, błąd nie występuje. O co chodzi?

    ActiveSheet.Name = "dfe.xlsm"
    Range("b16:b28").Select
    Selection.Copy
    Windows("abc.xlsm").Activate
    Worksheets("1").Activate
    ActiveSheet.Unprotect Password:="xxx"
    Range("B16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Windows("dfe.xlsm").Activate
    Range("c32:d38").Select
    Selection.Copy
    Windows("abc.xlsm").Activate
    Worksheets("1").Activate
    Range("c32").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    Rows("10:46").Select
    Selection.EntireRow.Hidden = True

    ActiveSheet.Protect Password:="xxx", DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets("1").Visible = False



    Generalnie makro ma z pliku dfe pobrać pewne komórki o wkleić do pliku abc po wcześniejszym odhasłowaniu zakładki 1 w tymże pliku, ukryć wiersze 10:46 i zahasłować zakładkę
  • Poziom 38  
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Poziom 2  
    To i ja się domyśliłem ;) tylko jakie jest rozwiązanie problemu?
  • Poziom 38  
    Trochę czytelniejszy kod:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Rozwiązaniem było odkrycie wierszy przed skopiowaniem, co ten kod robił.