我希望有人可以帮助我。 在excel的一个工作表中,我在C列和N列中有两列参考号。
栏C:
AAAA1
ABAA3
KDFG4
......
N栏:
ABAA2
AAAA4
MMMM3
......
然后我添加公式' left'进入A列和L列,从C列和N列中的参考号中删除正确的数字:
Dim lastrow As Long
Worksheets(sheet).Cells(2, column - 1).Formula = "=LEFT(" & Worksheets(sheet).Cells(2, column - 1).Offset(0, 2).Address(0, 0) & ",6)"
lastrow = Worksheets("AAL").Cells(Worksheets(sheet).rows.Count, column).End(xlUp).row
Worksheets(sheet).Cells(2, column - 1).Resize(lastrow - 1).FillDown
栏A:
AAAA
ABAA
KDFG
......
L栏:
ABAA
AAAA
MMMM
...
之后我使用以下代码从A列底部的L列添加缺少的参考编号:
Worksheets(sheet).Calculate
Dim Rw As Long, Rw2 As Long, iFound As Integer
Rw2 = Worksheets(sheet).Cells(Worksheets(sheet).rows.Count, 3).End(xlUp).row + 1
For Rw = 2 To Worksheets(sheet).Cells(rows.Count, 14).End(xlUp).row
iFound = WorksheetFunction.CountIf(Range("A:A"), Worksheets(sheet).Cells(Rw, 12))
If iFound = 0 Then
Worksheets(sheet).Cells(Rw2, 1).Value = Worksheets(sheet).Cells(Rw, 12).Value
Rw2 = Rw2 + 1
End If
Next Rw
奇怪的是,如果我有工作表'表'打开,代码工作得很好。但是,如果我在运行VBA代码时使用的是其他工作表,则代码会在A列底部的列L中添加所有值,而不仅仅是' MMMM'。
除非您打开Excel工作表,否则看起来第一个查询中剩下的公式不能正确计算。但我想代码
Worksheets(sheet).Calculate
会做到这一点。
非常感谢你的帮助!
答案 0 :(得分:1)
Worksheets(sheet).Cells(2, column - 1).Offset(0, 2).Address(0, 0)
只会返回单元格范围,不会包含工作表参考。
您需要添加外部参考:
Worksheets("sheet").Cells(2, Column - 1).Offset(0, 2).Address(0, 0, xlA1, 1)