我的代码运行,但MATCH('Worksheets1'!$D2,
没有根据它所在的行进行更改或更新。
例如,如果我的工作表包含2000行要进行索引匹配,则公式仍将只包含MATCH('Worksheets1'!$D2
作为其引用的单元格。
如何根据代码所在的行号更改单元格的值?
Sub trial()
On Error Resume Next
Dim Dept_Row As Long
Dim Dept_Clm As Long
Table1 = Worksheets1.Range("D:D")
Table2 = Worksheets2.Range("A:B")
Dept_Row = Worksheets1.Range("A2").Row
Dept_Clm = Worksheets1.Range("A2").Column
For Each cl In Table1
If IsEmpty(cl) Then Exit Sub
If Not IsEmpty(cl) Then Worksheets("Worksheets1").Cells(Dept_Row, Dept_Clm) = _
"=INDEX('Worksheets2'!$B:$B,MATCH('Worksheets1'!$D2,'Worksheets2'!A:A,0)) "
Dept_Row = Dept_Row + 1
Next cl
Exit Sub
我创建了这个循环,希望公式能更新,使它
部门行=部门行+ 1。
我尝试了两种方法,一种是让它保持原样,另一种是在公式结束后将代码引入引号,但是,我的代码只能按原样运行。
我想做加1,但我怀疑这是否可行,它只会把单元格的值D2变成D3。
2条答案
按热度按时间busg9geu1#
不需要循环,所有代码都可以归结为:
vc9ivgsu2#
问题不清楚,但我猜这就是你要找的: