Board logo

標題: 對於.activate的疑問 [打印本頁]

作者: lalalada    時間: 2016-3-23 18:05     標題: 對於.activate的疑問

在處理不同檔案間資料的時候我一般都是用 Workbooks(xxx).sheets().range()   xxx為檔名
但最近(?)發現如果檔案xxx不是在最上層的話會出現錯誤(儘管有開啟)
必須加上Workbooks(xxx).Activate才能正常運轉
請問為什麼呢? (覺得activate很冗阿...)
另外手邊有Filename_EBTS 和Filename_EBTS_Net 兩個檔案
不知為何無法進行資料貼上 請前輩們指點
  1. Sub temp()
  2. DataDate = Date
  3. Filename_EBTS = Format(DataDate, "yyyymmdd") & "-P&S.xls"
  4. Filename_EBTS_Net = Format(DataDate, "yyyymmdd") & "-Net.xls"
  5. Filename_OTC = Format(DataDate, "yyyymmdd") & "-OTC.xls"

  6. i = Workbooks(Filename_EBTS_Net).Sheets(1).Cells(4, 1).End(xlDown).Row

  7. Workbooks(Filename_EBTS_Net).Sheets(1).Range("C5", Cells(i, 5)).Copy Workbooks(Filename_EBTS).Sheets(1).Range("G5")

  8. End Sub
複製代碼
也嘗試過使用.Select然後.Paste依然無效
作者: 准提部林    時間: 2016-3-23 20:25

Sub temp()
Dim DataDate As String, Book_EBTS As Workbook, Book_EBTS_Net As Workbook, Book_OTC As Workbook
DataDate = Format(Date, "yyyymmdd")

Set Book_EBTS = Workbooks(DataDate & "-P&S.xls")
Set Book_EBTS_Net = Workbooks(DataDate & "-Net.xls")
Set Book_OTC = Workbooks(DataDate & "-OTC.xls")

i = Book_EBTS_Net.Sheets(1).Cells(4, 1).End(xlDown).Row
Book_EBTS_Net.Sheets(1).Range("C5:E" & i).Copy Book_EBTS.Sheets(1).Range("G5")
End Sub
作者: 准提部林    時間: 2016-3-23 20:44

Workbooks(Filename_EBTS_Net).Sheets(1).Range("C5", Cells(i, 5)).Copy

紅色的部份, 會被視為當前活頁簿工作表的參照, 未跳轉該活頁簿時, 應會有錯誤!!!
作者: lalalada    時間: 2016-3-25 11:33

回復 3# 准提部林
成功了!
果然魔鬼藏在細節裡
謝謝大大指點:)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)