我有一个标准模板。为了抵消用户添加自己的列的事实,我已将所有列编入索引。我为标题标题创建了一个变量,并为此变量分配了一个整数。
因此,列A始终称为带有整数变量ColumnA
的字符串变量IColumnA
。我还有一组行数和最后一行的变量LRow
。
我的问题是:
如何使用整数变量选择列范围?
例如range(IcolumnA, lastrow .end (xlUp)).Copy
(或其变体)
这不起作用,因为整数不适用于范围方法(我估计)。
谁能帮助我?
答案 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