使用列号和行号复制范围(整数)vba

时间:2017-08-16 13:47:35

标签: vba excel-vba integer range cells

我有一个标准模板。为了抵消用户添加自己的列的事实,我已将所有列编入索引。我为标题标题创建了一个变量,并为此变量分配了一个整数。 因此,列A始终称为带有整数变量ColumnA的字符串变量IColumnA。我还有一组行数和最后一行的变量LRow

我的问题是:

如何使用整数变量选择列范围?

例如range(IcolumnA, lastrow .end (xlUp)).Copy(或其变体)

这不起作用,因为整数不适用于范围方法(我估计)。

谁能帮助我?

1 个答案:

答案 0 :(得分:1)

<强> 编辑: 这是问题的一般解决方案&#34;如何复制范围&#34;。答案是 - 声明源和目标并将源复制到目标:

Option Explicit

Public Sub TestMe()

    Dim rngSource   As Range
    Dim rngTarget   As Range

    With Worksheets(1)
        Set rngSource = .Range(.Cells(2, "A"), .Cells(100, "B"))
        Set rngTarget = .Range(.Cells(2, "C"), .Cells(100, "D"))

        rngSource.Copy
        rngTarget.PasteSpecial xlPasteAll
        Application.CutCopyMode = False
    End With

End Sub

如果您只想复制整个列,请尝试以下方法:

Sub TestMe()

    Range(Columns(5), Columns(6)).Copy
    Range(Columns(7), Columns(8)).PasteSpecial xlPasteAll
    Application.CutCopyMode = False

End Sub

它会将第5列到第6列复制到第7列到第8列。当然,您可以放置​​变量而不是数字。

这有点复杂,有变量:

Sub TestMe()

 Dim lngCopyColumn   As Long: lngCopyColumn = 2
 Dim lngPasteColumn  As Long: lngPasteColumn = 10
 Dim lngLenC         As Long: lngLenC = 3

 Range(Columns(lngCopyColumn), Columns(lngCopyColumn + lngLenC)).Copy
 Range(Columns(lngPasteColumn), Columns(lngPasteColumn + lngLenC)).PasteSpecial xlPasteAll
 Application.CutCopyMode = False

End Sub