IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
nalimleinad
Člen
Avatar
nalimleinad:3.7.2018 16:08

Ahoj,

mám xlam script, u kterého potřebuji detekovat, že pokud uživatel otevře excelovou tabulku, která obsahuje sheet se jménem x a y, aby mu to do nabídky right-clicku přidalo menu.

Mám v xlam scriptu v ThisWorkbook toto:

Private Sub Workbook_Open()
    Dim i As Integer
    Dim patchListFound As Boolean
    Dim deviceListFound As Boolean

    'ThisWorkbook.Activate

    With ActiveWorkbook
        For i = 1 To .Sheets.Count
            If .Sheets(i).Name = patchlist Then
                patchListFound = True
                Exit For
            End If

            If .Sheets(i).Name = deviceList Then
                deviceListFound = True
                Exit For
            End If
        Next i
    End With

    If patchListFound = True And deviceListFound = True Then
        AddToCellMenu
    Else
        Call DeleteFromCellMenu
    End If
End Sub

Problém je ovšem v tom, že po otevření excelového dokumentu dostanu chybovou hlášku
".Sheets.Count - Object variable or with block variable not exists"

Podle mě to je tím, že se nestihnou načíst ještě sheety, ale možná se pletu.

Zkusil jsem: Zkoušel jsem měnit i na With ThisWorkbook, ale to mi bere Sheety z xlam scriptu, né z dokumentu, který se otevře.

Chci mít možnost custom jména excelového dokumentu, takže ho nechci nutit do kódu.

Zkoušel jsem ještě řadu funkcí jako:

Private Sub Workbook_Activate()
Private Sub ThisWorkbook_Ac­tivate()
Private Sub ActiveWorkbook_Ac­tivate()
Private Sub ActiveWorkbook_O­pen()

Nicméně ani jedna z nich se mi nezavolala po spuštění excelu (měl jsem na začátku MsgBox() )

Chci docílit: Nějaké nápady ?

 
Odpovědět
3.7.2018 16:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.