簡體   English   中英

將粘貼自動范圍從一個工作簿復制到另一個工作簿

[英]copy paste automatic range from one workbook to another

因此,我嘗試執行從一本書到另一本書的復制。 我在網絡上到處搜索,但是,我必須管理,我不是VBA的專家,所以要正確理解人們提供的解決方案。 我寫的代碼是這樣的。 逐步介紹:我定義變量。 定義對應於我要打開的文件的年,月和日的取值范圍。 我打開文件。 我將目標書設置為當前書(在其中放置按鈕)。 然后,我想找到我的選項卡的自動范圍(因為每天都要更改),並且我要對各行討論的列(-5,因為我不需要最后5列)和行進行計數。 但是..代碼在我打開書(wkbk)后停止。 這是為什么? 出現的錯誤是:應用程序定義或對象定義的錯誤。

    Sub Opentrading()

Dim FolderPath As String
Dim Path As String
Dim nyear As String
Dim nmont As String
Dim nday As String
Dim wkbk As Workbook
Dim mybook As Workbook
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Dim sht As Worksheet

FolderPath = "F:\FICM\Trading Runs\Daily Trading Runs"
nyear = Sheet6.Range("J3")
nmont = Sheet6.Range("J5")
nday = Sheet6.Range("J7")
Path = FolderPath & "\" & nyear & "-" & nmont & "-" & nday & " Trading - Southern_Europe" & ".xlsx"
Set mybook = ThisWorkbook
Set wkbk = Workbooks.Open(Path)
Set sht = wkbk.Sheets("Southern_Europe")

'Find Last Row and Column
Set StartCell = Range("D1")
  LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
  LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column

'Select Range
 wkbk.Worksheets("Southern_Europe").Range(StartCell, sht.Cells(LastRow, LastColumn - 5)).Copy mybook.Worksheets("Prova").Range("Z1")

  wkbk.Close
End Sub

更改:

Set StartCell = Range("D1")

至:

Set StartCell = sht.Range("D1")

您在此處使用StartCell

wkbk.Worksheets("Southern_Europe").Range(StartCell, sht.Cells(LastRow, LastColumn - 5)).Copy

並且,如果未正確聲明StartCell ,則它不屬於工作表“ Southern_Europe”。 相反,它將采用ActiveSheet或當前所在的工作表。

暫無
暫無

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

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