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

问题描述:

我有一个标准模板。以抵消用户添加自己的列的事实,我已将所有列编入索引。我为标题标题创建了一个变量,并为此变量分配了一个整数。 因此,列A始终被称为字符串变量ColumnA,整数变量为IColumnA。我也有最后一排的行数和变量LRow使用列和行号复制范围(整数)vba

我的问题是:

我如何选择一列范围内的整数变量?

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

这不起作用,因为该整数不与范围方法(我认为)工作。

谁能帮我一起?

编辑: 这是问题的一个通用的解决方案“如何复制的范围”。答案是 - 声明源和目标和源复制到目标:

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 
+0

你是什么意思与LngLenC?这是总行数? k,清除 – MyName

+0

@MyName - 合计范围内的列。这两个范围应该是相同的。 – Vityata

+0

谢谢。唯一的事情是它选择整个列。我需要用1从第一个单元格(从单元格2)结束(xlDown)来抵消它。我试图绕过一些小小的成功。你能指定这个命令需要去的地方吗? 'WsStam.Range(列(iKolomnrCorpID),列(iKolomnrCorpID))。复制' – MyName