2017-08-16 76 views
1

我有一個標準模板。以抵消用戶添加自己的列的事實,我已將所有列編入索引。我爲標題標題創建了一個變量,併爲此變量分配了一個整數。 因此,列A始終被稱爲字符串變量ColumnA,整數變量爲IColumnA。我也有最後一排的行數和變量LRow使用列和行號複製範圍(整數)vba

我的問題是:

我如何選擇一列範圍內的整數變量?

例如range(IcolumnA, lastrow .end (xlUp)).Copy(說明書或其變體)

這不起作用,因爲該整數不與範圍方法(我認爲)工作。

誰能幫我一起?

回答

1

編輯: 這是問題的一個通用的解決方案「如何複製的範圍」。答案是 - 聲明源和目標和源複製到目標:

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