错误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来识别单个单元格。 您也可以使用它来识别范围内的开始和结束单元格。