簡體   English   中英

以增量方式復制/粘貼VBA

[英]Copy/Paste VBA in increments

我正在考慮為代碼的以下部分創建循環:

InvestorMaterialDataCrypto001.Range(InvestorMaterialDataCrypto001.Cells(TableFirstRow, TableFirstColumn), InvestorMaterialDataCrypto001.Cells(TableLastRow_Crypto001, TableLastColumn)).Copy
    HistoricalSheet.Cells(InputReferenceRow_002, InputReferenceColumn + (CountColumns * 0)).PasteSpecial Paste:=xlPasteValues
InvestorMaterialDataCrypto002.Range(InvestorMaterialDataCrypto002.Cells(TableFirstRow, TableFirstColumn), InvestorMaterialDataCrypto002.Cells(TableLastRow_Crypto002, TableLastColumn)).Copy
    HistoricalSheet.Cells(InputReferenceRow_002, InputReferenceColumn + (CountColumns * 1)).PasteSpecial Paste:=xlPasteValues
InvestorMaterialDataCrypto003.Range(InvestorMaterialDataCrypto003.Cells(TableFirstRow, TableFirstColumn), InvestorMaterialDataCrypto003.Cells(TableLastRow_Crypto003, TableLastColumn)).Copy
    HistoricalSheet.Cells(InputReferenceRow_002, InputReferenceColumn + (CountColumns * 2)).PasteSpecial Paste:=xlPasteValues
InvestorMaterialDataCrypto004.Range(InvestorMaterialDataCrypto004.Cells(TableFirstRow, TableFirstColumn), InvestorMaterialDataCrypto004.Cells(TableLastRow_Crypto004, TableLastColumn)).Copy
    HistoricalSheet.Cells(InputReferenceRow_002, InputReferenceColumn + (CountColumns * 3)).PasteSpecial Paste:=xlPasteValues
InvestorMaterialDataCrypto005.Range(InvestorMaterialDataCrypto005.Cells(TableFirstRow, TableFirstColumn), InvestorMaterialDataCrypto005.Cells(TableLastRow_Crypto005, TableLastColumn)).Copy
    HistoricalSheet.Cells(InputReferenceRow_002, InputReferenceColumn + (CountColumns * 4)).PasteSpecial Paste:=xlPasteValues
InvestorMaterialDataCrypto006.Range(InvestorMaterialDataCrypto006.Cells(TableFirstRow, TableFirstColumn), InvestorMaterialDataCrypto006.Cells(TableLastRow_Crypto006, TableLastColumn)).Copy
    HistoricalSheet.Cells(InputReferenceRow_002, InputReferenceColumn + (CountColumns * 5)).PasteSpecial Paste:=xlPasteValues 

問題是我找不到增加“工作表”名稱/變量和(CountColumns * 1)部分的解決方案。

使此代碼更優化將很有幫助...

總代碼為:

Dim FilePath As String: FilePath = InvestorMaterialDataFilePathParsed
Dim InvestorMaterialData As Workbook
Set InvestorMaterialData = Workbooks.Open(Filename:=FilePath)
Set InvestorMaterialDataDashboardSheet = InvestorMaterialData.Worksheets("Dashboard")
Set InvestorMaterialDataTop30Sheet = InvestorMaterialData.Worksheets("Top30")
Set InvestorMaterialDataCrypto001 = InvestorMaterialData.Worksheets("CryptoAsset001")
Set InvestorMaterialDataCrypto002 = InvestorMaterialData.Worksheets("CryptoAsset002")
Set InvestorMaterialDataCrypto003 = InvestorMaterialData.Worksheets("CryptoAsset003")
Set InvestorMaterialDataCrypto004 = InvestorMaterialData.Worksheets("CryptoAsset004")
...
TableFirstColumn = InvestorMaterialDataCrypto001.Range("A1").Column
TableLastColumn = InvestorMaterialDataCrypto001.Range("A1").End(xlToRight).Column
TableFirstRow = InvestorMaterialDataCrypto001.Range("A1").Row
TableLastRow_Crypto001 = InvestorMaterialDataCrypto001.Range("A1").End(xlDown).Row
TableLastRow_Crypto002 = InvestorMaterialDataCrypto002.Range("A1").End(xlDown).Row
TableLastRow_Crypto003 = InvestorMaterialDataCrypto003.Range("A1").End(xlDown).Row
TableLastRow_Crypto004 = InvestorMaterialDataCrypto004.Range("A1").End(xlDown).Row


and the top part of the loop...

沒有完整閱讀您的問題/代碼。 但是,由於三個小時后您沒有得到任何回應,因此我敢於發布可能有用的提示(如果我誤解了您的帖子,則完全錯誤)。 復制到至少包含三張紙的新工作簿(“ Sheet1”,“ Sheet2”和“ Sheet3”),然后嘗試一下。

Sub Trial()
    Dim i As Integer
    Dim TempName1 As String
    Dim TempName2 As String

    For i = 1 To 3
        'TempName1 = "InvestorMaterialDataCrypto00" & i
        TempName1 = "Sheet" & i
        TempName2 = "TableLastRow_Crypto00" & i

        'here do your stuff. Next line just as an example
        Worksheets(TempName1).Cells(i, 1) = TempName2
    Next

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM