返回列表 上一主題 發帖

可以請教當欄位不是固定在一個位置我要如何copy到第2活頁

回復 16# GBKEE


    謝謝大大的幫忙,原來我一直想說用activesworkbook方式,去取的我要的訊息,謝謝大大的教導讓我學習更多新vba 寫法  謝謝你

TOP

本帖最後由 GBKEE 於 2013-12-1 16:35 編輯

回復 15# hu0318s
  1. Option Base 1
  2. Sub Ex()
  3.     Dim AR(), i As Integer, A As Range
  4.      AR = Array("工令", "品名", "MRP料齊日")
  5.     With Workbooks.Open(Filename:="C:\book1.xls") '檢查看看 C:有book1.xls嗎?
  6.         For i = 1 To UBound(AR)
  7.             Set A = .Worksheets("sheet1").Cells.Find(AR(i), lookat:=xlWhole)
  8.             If Not A Is Nothing Then .Worksheets("sheet1").Range(A, A.End(xlDown)).Copy Workbooks("book2.xls").Worksheets("Sheet3").Cells(1, i)
  9.             '如這程式碼是Workbooks("book2.xls")專案的程式碼
  10.             'If Not A Is Nothing Then .Worksheets("sheet1").Range(A, A.End(xlDown)).Copy Sheet3.Cells(1, i)
  11.             'Sheet3 是工作表物件的名稱 無法用Workbooks("book2.xls").Sheet3
  12.             '需是Workbooks("book2.xls").Worksheets("工作表名稱")
  13.         Next
  14.         .Close False
  15.     End With
  16. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-12-1 16:16 編輯

Book1.rar (21.77 KB) Book2.rar (7.86 KB) 回復 13# GBKEE


    謝謝大大的教導,但我假設我的檔案book1,xls 在c:\  我一樣要copy"工令" "品名" "MRP料齊日" 到桌面上的BOOK2.XLS ,但我修改過粉多方式還會出現下面的問題,報歉我又要麻煩大大们

TOP

回復 13# GBKEE

GBKEE大 讚, 感謝指教,又學一招

AR = Array("工令", "品名", "MRP料齊日") 將要找的放在陣列中,將能程式碼構架化後就能彈性查詢。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 11# ML089
  1. Option Base 1
  2. Sub Ex()
  3.     Dim AR(), i As Integer, A As Range
  4.     AR = Array("工令", "品名", "MRP料齊日")
  5.     With Sheet1
  6.         For i = 1 To UBound(AR)
  7.             Set A = .Cells.Find(AR(i), lookat:=xlWhole)
  8.             If Not A Is Nothing Then .Range(A, A.End(xlDown)).Copy Sheet3.Cells(1, i)
  9.         Next
  10.     End With
  11. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# GBKEE


    謝謝大大,解開我的疑慮,感謝大大的幫忙

TOP

回復 9# hu0318s

如果不是整齊的資料塊,只能像10#GBKEE大的方式,一般情況應該是比較少這樣放資料
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 9# hu0318s
  1. 'End 屬性 傳回 Range 物件,該物件代表包含來源範圍之區域結尾處的儲存格。
  2. '等於按 END+向上鍵、END+向下鍵、END+向左鍵或 END+向右鍵。唯讀 Range 物件。
  3. Sub Ex2()
  4.     Dim A As Range
  5.     With Sheet1
  6.         Set A = .Cells.Find("工令", lookat:=xlWhole)
  7.         If Not A Is Nothing Then
  8.              .Range(A, A.End(xlDown)).Copy Sheet3.[A1]
  9.         End If
  10.         Set A = .Cells.Find("品名", lookat:=xlWhole)
  11.         If Not A Is Nothing Then
  12.              .Range(A, A.End(xlDown)).Copy Sheet3.[B1]
  13.         End If
  14.     End With
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# GBKEE

情況如果是這樣

12233.JPG (193.65 KB)

12233.JPG

122.JPG (178.38 KB)

122.JPG

Book1.rar (21.77 KB)

TOP

回復 7# hu0318s
請附檔,可了解你所說的問題
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 原諒別人就是善待自己。
返回列表 上一主題