logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Excel - VB] Jak w Excel VBA usunąć Arkusz3, jeśli istnieje, i utworzyć nowy?

Lexon 10 Maj 2010 12:25 2636 3
REKLAMA
  • #1 8058132
    Lexon
    Poziom 10  
    Posty: 15
    Jaki zapis mam umieścić w makro, żeby jego efektem było:
    - sprawdzenie czy w skoroszycie występuje Arkusz3
    - jeśli tak, to należy go skasować,
    - jeśli nie, to wykonać kolejne polecenie (np. utworzenie Arkusza3)

    Wiem jak utworzyć nowy Arkusz3 ale bez tego sprawdzenia tworzą mi się kolejne Arkusz3 (2), Arkusz3 (3) itp. - a chciałbym tego uniknąć.

    Inaczej mówiąc: nowy Arkusz3 powinien zastąpić dotychczasowy Arkusz3 - jeśli istnieje w skoroszycie.
  • REKLAMA
  • #2 8058263
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Lexon napisał:
    Jaki zapis mam umieścić w makro, żeby jego efektem było:
    - sprawdzenie czy w skoroszycie występuje Arkusz3

    For Each ws In Worksheets
        If (ws.Name = "Arkusz3") Then
     
        End If
    Next ws

    Lexon napisał:

    - jeśli tak, to należy go skasować,

    Application.DisplayAlerts = False
    ws.Delete
    Application.DisplayAlerts = True

    Lexon napisał:

    - jeśli nie, to wykonać kolejne polecenie (np. utworzenie Arkusza3)

    Set wstmp = ThisWorkbook.Sheets.Add(, ThisWorkbook.Worksheets(1), 1)
    wstmp.Name = "blablaba"


    Na przyszłość najpierw nagraj makro i podejrzyj kod. :)
  • REKLAMA
  • #3 8058683
    Lexon
    Poziom 10  
    Posty: 15
    Wielkie dzięki, o to mi chodziło.
    Cytat:
    Na przyszłość najpierw nagraj makro i podejrzyj kod.
    Niestety, nie wiem jak nagrać makro typu: jeżeli... to... - stąd też nie mogłem nic podejrzeć.

    Nie jestem niestety biegły w Visual Basic i tylko eksperymentalnie mogę coś tworzyć, co mi ułatwia pracę. Stąd też ostatnie pytanie laika:
    Czy makro może otwierać kolejne pliki w katalogu, bez konieczności podawania ich nazwy - a jeśli tak, to jak to zapisać?
  • #4 8058797
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Lexon napisał:

    Czy makro może otwierać kolejne pliki w katalogu, bez konieczności podawania ich nazwy

    Może, ale to już jest bardziej skomplikowane. Nie podałeś o jaki pliki Ci chodzi - .txt, .xls i co by miało się z nimi dziać po otwarciu. Przejrzyj ten post od połowy mniej więcej.
    Otwieranie pliku .xls to
    Workbooks.Open Filename:="c:book1.xls"
    , a potem:
    Workbooks("book1.xls").Activate
    ActiveWorkbook.Save
    ActiveWorkbook.Close
REKLAMA