我有一个小宏,它从xlsm中的多个xml文件和粘贴中获取数据。每个xml文件都有一个标记名称,数据粘贴到的列在第4行中有标记名称。我试图粘贴到最后一个使用行下面的一个,但我在下面的三个方法一直返回&# 34; 1"对于最后一次使用的行。 星号是我遇到问题的代码。
For Z = 1 To 16
If Cells(4, Z).Value Like i Then
Dim Lengthend As Double
Dim An As Variant
An = (Split(Cells(4, Z).Address(True, False), "$")(0))
Lengthend = *****
Cells(Lengthend + 1, Z).Select
Cells(Lengthend + 1, Z).PasteSpecial Paste:=xlPasteValues
End If
Next
以下是我用来查找列末尾的三种方法:
Dim sht As Worksheet
Set sht = Sheets("PI Data")
sht.Cells(sht.Rows.Count, "An").End(xlUp).Row
和
Lengthend = Range("An" & Rows.Count).End(xlUp).Row
和
(ActiveSheet.UsedRange.Columns(An).Count)
这些方法中的每一个都返回答案" 1。"关于我做错了什么的建议?
答案 0 :(得分:0)
Lengthend = Range("An" & Rows.Count).End(xlUp).Row
上面有一个拼写错误,如果你改成它就有效 - 你可以尝试做的是传递变量An的值而不是值" An"
Lengthend = Range(An & Rows.Count).End(xlUp).Row
您还应该定义您所指的工作表,以避免任何进一步的问题 -
Lengthend = Sheets("PI Data").Range(An & Rows.Count).End(xlUp).Row