Potrebujem uviesť rozsah v inom pracovnom hárku, takže som použil udalosť Worksheet_change, ale zobrazuje sa chyba 1004. Nižšie je uvedený kód -
Private Sub Worksheet_Change(ByVal Target As Range)
Dim inputSheetName As String
Dim dataSheetName As String
inputSheetName = Range("Selected_State").Worksheet.Name
dataSheetName = Range("Selected_City").Worksheet.Name
End Sub
tu Rozsah - „Selected_State“ je rozsah v Tabuľke 1 a „ Rozsah - „Selected_City je rozsah v hárku2
odpovede:
1 pre odpoveď č. 1Rozsah je vždy v rámci konkrétneho pracovného hárka. Ak používate
Range("Selected_State")
potom Excel predpokladá, že tento rozsah je v aktívnom hárku. Je to presne toto:
ActiveSheet.Range("Selected_State")
Ak teda chcete vedieť, v ktorom pracovnom liste je pomenovaný rozsah, mali by ste použiť tento postup:
ThisWorkbook.Names("Selected_State").RefersToRange.Worksheet.Name
Poznámka: Toto funguje iba v prípade, že názov je v rozsahu zošita, ale nie v rámci rozsahu pracovného hárka. Ak chcete nájsť toto meno, musíte prebehnúť vo všetkých pracovných hárkoch.