VBA Rows.Count和UsedRange返回" 1"

时间:2016-11-24 07:10:08

标签: vba

我有一个小宏,它从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。"关于我做错了什么的建议?

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