我几乎没有VBA的背景,对其整体结构知之甚少,但需要对现有的电子表格进行添加/修改以实现某些目标。这个电子表格非常庞大,有数百个命名范围,还有数十个VBA函数和计算。
目前,我所要做的就是:
为了实现第2步,我启动了一个Worksheet_SelectionChange子例程,代码如下。假设有两个下拉选项= ABC& XYZ。假设两个相应的命名范围是ABC_data& XYZ_data。这两个命名范围属于工作簿范围。它们将被复制到标有SheetC的表格中。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim PD As String, transferRange As Range
PD = Target.Value
Select Case PD
Case "ABC"
transferRange = ABC_data
Case "XYZ"
transferRange = XYZ_data '<~ error here, assuming "XYZ" selection
End Select
Range(transferRange).Copy ThisWorkbook.Sheets("SheetC").Range("A1")
End Sub
请帮我理解这有什么问题。当我做出选择并调试这个子例程时,假设XYZ选择,我在transferRange = XYZ_data
行得到一个“对象变量或没有设置块变量”错误。看起来我无法访问此子例程中的命名范围。我应该采取什么措施?
请充分了解我正在做的事情。
答案 0 :(得分:0)
试试这个(注意我添加了目的地:= 位,希望能解决你的最终错误:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim PD As String, transferRange As Range
PD = Target.Value
Select Case PD
Case "ABC"
Set transferRange = ThisWorkbook.Sheets("SheetB").Range("ABC_data")
Case "XYZ"
Set transferRange = ThisWorkbook.Sheets("SheetB").Range("XYZ_data")
End Select
Range(transferRange).Copy Destination:=ThisWorkbook.Sheets("SheetC").Range("A1")
End Sub