VBA 变量作为范围不接受工作表!范围作为值



我在VBA 中有一个函数

Function VLOOKUPnew(ValueToLook As Range, Interval As Range, ColIndex As Integer) As Variant  

它接受$A$1:$D$500,但不接受Name_of_theet$A$1:$D$500

我该如何解决?

EDIT:这与这个问题有关,复制/粘贴VBA内部函数中的特殊单元格格式,不起的作用

问题出在函数内部的代码。你需要改变这个:

fMatch = Application.Match(ValueToLook, Range(Interval.Address()).Columns(1), 0)
' Obtem o endereço da célula que contem o valor do VLOOKUP
' **********************************************
CellOrigin = Interval.Cells(fMatch, Interval.Columns.Count).Address()

进入这个:

fMatch = Application.Match(ValueToLook, Interval.Worksheet.Range(Interval.Address()).Columns(1), 0)
' Obtem o endereço da célula que contem o valor do VLOOKUP
' **********************************************
CellOrigin = "'" & Interval.Worksheet.Name & "'" & Interval.Cells(fMatch, Interval.Columns.Count).Address()

否则,它将搜索错误的工作表,并从错误的单元格中复制格式。

最新更新