Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Excel - VB] makro kasujące arkusz w skrypcie

Lexon 10 May 2010 12:25 2528 3
  • #1
    Lexon
    Level 9  
    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.
  • #2
    marcinj12
    Level 40  
    Lexon wrote:
    Jaki zapis mam umieścić w makro, żeby jego efektem było:
    - sprawdzenie czy w skoroszycie występuje Arkusz3

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

    Lexon wrote:

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

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

    Lexon wrote:

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

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


    Na przyszłość najpierw nagraj makro i podejrzyj kod. :)
  • #3
    Lexon
    Level 9  
    Wielkie dzięki, o to mi chodziło.
    Quote:
    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
    marcinj12
    Level 40  
    Lexon wrote:

    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
    Code:
    Workbooks.Open Filename:="c:book1.xls"
    , a potem:
    Code:
    Workbooks("book1.xls").Activate
    
    ActiveWorkbook.Save
    ActiveWorkbook.Close