Vba 从不同的工作表和vlookup函数设置范围

Vba 从不同的工作表和vlookup函数设置范围,vba,excel,range,vlookup,Vba,Excel,Range,Vlookup,此代码工作正常: Sub test_range() Dim Range1 As Range Set Range1 = Sheet4.Range("B2:F6081") End Sub 当我将范围更改为变量时,会出现错误1004: Sub test_range() Dim Range1 As Range Set Range1 = Sheet4.Range(Cells(2, 2), Cells(6081, 6)) End Sub “选择单元格”转换有什么问题 此外,我想将其应用于vlookup函

此代码工作正常:

Sub test_range()
Dim Range1 As Range
Set Range1 = Sheet4.Range("B2:F6081")
End Sub
当我将范围更改为变量时,会出现错误1004:

Sub test_range()
Dim Range1 As Range
Set Range1 = Sheet4.Range(Cells(2, 2), Cells(6081, 6))
End Sub
“选择单元格”转换有什么问题

此外,我想将其应用于vlookup函数:

For C = 2 To ColNumber

    C4 = C + 4
    For R = 2 To RowNumber
        Set Condition = Sheet1.Cells(R, 2)
        'MsgBox (Condition)
        Set Range1 = Sheet4.Cells(2, 2).Offset(6079, C + 3) 'B2 (row 2 column 2) : F6081 (row 6081 column 6)
        'MsgBox (Range1)
            arg1 = 5
            arg2 = False
        Sheet1.Cells(R, C4).Value = Application.WorksheetFunction.VLookup(Condition, Range1, 5, 0)
    Next R

Next C
我试图将范围修改为

Range1 = Sheet4.Cells(2, 2).Offset(6079, C + 3)
范围函数起作用了,但vlookup函数(再次)给了我错误1004


我读了一些关于vlookup的案例,每一个vlookup的模糊结果都是一个变体。我也应该这样做吗?我能不能把它的结果放到一列的值上?

单元格
的意思是
ActiveSheet.Cells
!因此,如果您的活动工作表不是Sheet4,
Sheet4.Range(单元格(…
)将显示错误

使用
Sheet4.Range(Sheet4.Cells


或者更好地使用
Sheet4.Cells(2,2).Resize(6080,5)

解决您的第一个问题:
Cells
意味着
ActiveSheet.Cells
!因此,如果您的活动工作表不是Sheet4,
Sheet4.Range(Cells(…
将给您一个错误!请改用
Sheet4.Range(Sheet4.Cells
或者更好的
Sheet4.Cells(2,2).Resize(6080,5)
它对、range和vlookup函数都很有效。非常感谢!我将其作为答案发布。如果它解决了您的问题,请将其标记为答案!谢谢