在这段代码中,我试图使用union函数逐个单元格构建一个范围单元格。
Function getColumnFromRowIndices(ByRef ws As Worksheet, columnHeader As String, rowIndices() As Long, ByRef headerCells_byHeader As Dictionary) As range
Dim gCFRI As range 'function alias
Dim cL As String: cL = getColumnLetterOfCell(headerCells_byHeader(columnHeader))
If Not IsEmpty(rowIndices) Then
Dim rI As Variant: For Each rI In rowIndices
If gCFRI Is Nothing Then Set gCFRI = ws.range(cL & CLng(rI)) _
Else Set gCFRI = Union(gCFRI, ws.range(cL & CLng(rI)))
Next rI
End If
Set getColumnFromRowIndices = gCFRI
End function
我遇到的问题是工会没有建立起来。当我在监视窗口中观看ws.range(cL& CLng(rI))时,它会按预期列出我要添加的新单元格。但是每次调用它时,联盟都会在这种情况下恢复为arg1。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
移动:
Dim gCFRI As range
UDF 之外的到 UDF 所在模块的顶部。这将允许范围“记住”其先前的值和“建立”。