错误91variables未定义
这是我从VBA开始的第二天。
我有这个循环,我第一次尝试匹配A列表1中的值,如果这是真的,它会继续匹配B列表2中的内容:
For i = 1 To wsforecast.Cells(wsforecast.Rows.Count, "A").End(xlUp).Row For j = 1 To wsregion26.Cells(wsregion26.Rows.Count, "B").End(xlUp).Row If Cells(i, "A").value = "AT" Then If Cells(i, "C").value = wsregion26.Cells(j, "B").value Then 'rownr = j Let srange1 = "I" & j & ":" & "n" & j Range(srange1).Select Selection.Copy Windows("SP_FORECAST_macro.xlsm").Activate Let srange2 = "D" & i & ":" & "i" & i Range(srange2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=False End If End If 'Exit For Next j Next I
但我总是得到这个错误:“91”对象variables或与块variables未定义,而我很确定我已经定义了一切:
Dim wbforecast As Workbook, wbregion As Workbook Dim wsforecast As Worksheet, wsregion10 As Worksheet, wsregion11 As Worksheet, wsregion26 As Worksheet Set wbforecast = Workbooks("SP_FORECAST_macro.xlsm") Set wsforecast = Workbooks("SP_FORECAST_macro.xlsm").Sheets("SP_FORECAST") Set wbregion = Workbooks("Region.xlsm") Set wsregion10 = Workbooks("Region.xlsm").Sheets("BE") Set wsregion11 = Workbooks("Region.xlsm").Sheets("LU") Set wsregion26 = Workbooks("Region.xlsm").Sheets("AT") Dim i As Integer, j As Integer, srange1, srange2 As Range
如果你能帮助我了解造成这个问题的原因是什么? 非常感谢你们!
使用模块顶部的option explicit
来查找您尚未定义的variables。
Let srange1 = "I" & j & ":" & "n" & j Range(srange1).Select Selection.Copy Windows("SP_FORECAST_macro.xlsm").Activate Let srange2 = "D" & i & ":" & "i" & i Range(srange2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, Transpose:=False
可以简化为
srange1 = "I" & j & ":" & "n" & j srange2 = "D" & i & ":" & "i" & i wsforecast.Range(srange2).Value2 = wsregion26.Range(srange1).Value2
同
dim srange1 as string dim srange2 as string
Let srange2 = "D" & i & ":" & "i" & i
应该
Set srange2 = Range("D" & i & ":" & "i" & i)
要么
Set srange2 = Range(Cells(i, "D"), Cells(i, "I"))
要么
Set srange2 = Range(Cells(i, 4), Cells(i, 9))
注意 – 在你的代码中,你使用Cells
来识别单个单元格。 您也可以使用它来识别范围内的开始和结束单元格。