VBA - 使用Worksheet_Change在其他工作表中引用范围 - 错误1004

时间:2017-04-27 07:09:19

标签: vba excel-vba excel

我需要在不同的工作表中引用范围,所以我使用了Worksheet_change事件但得到错误1004.下面是代码 -

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

此处范围 - " Selected_State"是Sheet1中的范围和" 范围 - " Selected_City是Sheet2中的范围

1 个答案:

答案 0 :(得分:1)

范围始终位于特定工作表中。如果你使用

Range("Selected_State")

然后Excel假定此范围在活动工作表中。它与此完全相同:

ActiveSheet.Range("Selected_State")

因此,如果您想知道命名范围在哪个工作表中,您应该使用它:

ThisWorkbook.Names("Selected_State").RefersToRange.Worksheet.Name

注意:这仅在名称位于工作簿范围内时有效,但在工作表范围内时不起作用。因此,您需要遍历所有工作表才能找到该名称。