Board logo

標題: 從一個Workbook抄寫資料到另一個Workbook [打印本頁]

作者: FAlonso    時間: 2011-10-2 20:29     標題: 從一個Workbook抄寫資料到另一個Workbook

有兩個Workbook,稱之為A和B
資料在B
現在嘗試在A的VBA開啓B,運算B的macro,名為test
  1. workbooks.open thisworkbook.path & "\B.xls"
  2. application.run worbooks("'B.xls'!test")
複製代碼
到這裡沒有問題
成功開啓後
B的vba找出相關位置及抄寫,以range A1為例
  1. sub test()
  2. with sheet1
  3. .range(.cells(1,1),.cells(1,1).end(xldown).end(xltoright).address).copy workbooks("A.xls").sheet1.range("A1")
  4. end sub
複製代碼
在這裡它出現了error 438 物件不支援此屬性或方法
不知那裡錯了
謝謝各位解答
作者: jimmyhk    時間: 2011-10-2 21:41

回復 1# FAlonso


先問一點點資料,
為何要執行 B 的 vba 才作抄寫的動作,
不由 A 內的 vba 全程執行?
作者: Hsieh    時間: 2011-10-2 22:15

回復 1# FAlonso

A.xls的程式碼
  1. Sub Run_B_macro()
  2. Workbooks.Open ThisWorkbook.Path & "\B.xls"
  3. Application.Run "B.xls!test"
  4. End Sub
複製代碼
B.xls的程式碼
  1. Sub test()
  2. With Sheets(1)
  3. .Range(.Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)), .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)).End(xlToRight)).Copy Workbooks("A.xls").Sheets(1).Range("A1")
  4. End With
  5. End Sub
複製代碼

作者: oobird    時間: 2011-10-2 23:45

何不乾脆用usedrange
  1. Sub test()
  2. With Sheets(1)
  3. .UsedRange.Copy Workbooks("A.xls").Sheets(1).Range("A1")
  4. End With
  5. End Sub
複製代碼





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