返回列表 上一主題 發帖

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

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

我們家的資料常常會不是固定欄位,我有用if 去抓它的位子,但無法回傳位子訊息給我,所以要請教大大们,我可以用何方式抓取我要的欄位在copy到另一個活頁簿

test1.JPG (195.48 KB)

test1.JPG

test2.JPG (120.22 KB)

test2.JPG

Book1.rar (13.17 KB)

回復 1# hu0318s
  1. Sub ex()
  2. Dim A As Range
  3. With Sheet1
  4. Set A = .Cells.Find("工令", lookat:=xlWhole)
  5. If Not A Is Nothing Then A.CurrentRegion.Copy Sheet2.[A1]
  6. End With
  7. End Sub
複製代碼
學海無涯_不恥下問

TOP

謝謝大大 我還是新手所以我把我想的打給你看看  
Dim A As Range    = 設定 a 為 所有儲存格
With Sheet1       =陳述 sheet1 所有訊息
Set A = .Cells.Find("工令", lookat:=xlWhole)    = 陣列a = .儲存格中該物件代表所找到的第一個包含所尋找資訊的儲存格(等於"工令", 發現要找的資料=要批配到資料)
If Not A Is Nothing Then A.CurrentRegion.Copy Sheet2.[A1]  = 如果 not找不到 則a就不執行 否則 a 就是到位置執行ctrl+a copy到第2活頁簿
End With  =結束陳述
不知我的了解是否有誤

TOP

回復 3# hu0318s
  1. Sub ex()
  2. Dim A As Range   'DIM (宣告為私用變數) A  AS(指定變數型態) Range '可參考VBA Range 屬性 的說明
  3. With Sheet1      'With 陳述式 在一個單一物件或一個使用者自訂型態上執行一系列的陳述式
  4.     Set A = .Cells.Find("工令", lookat:=xlWhole)
  5.     'a =>Range  .儲存格中該物件代表所找到的第一個包含所尋找資訊的儲存格(等....
  6.     If Not A Is Nothing Then A.CurrentRegion.Copy Sheet2.[A1]
  7.     'Not A Is Nothing :Not (邏輯否定。返轉, 不是) A Is Nothing(A 是 空的變數) -> 有找到
  8. End With
  9. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

報歉剛下班,謝謝大大的教導,我可以在請教一下,如果我只要工令跟品名貼到sheet2 ,我剛剛有試過
With Sheet1
Set A = .Cells.Find("工令", lookat:=xlWhole)
If Not A Is Nothing Then A.End(xlDown).Copy Sheet2.[A1]
Set A = .Cells.Find("品名", lookat:=xlWhole)
If Not A Is Nothing Then A.End(xlDown).Copy Sheet2.[b1]
End With
End Sub
為何無法copy "工令"下面,跟"品名"全部, 它只copy 最近一格有訊息的資料貼到sheet2  ,報歉又麻煩大大们

TOP

我也來練習一下
  1. Sub ex2()
  2.     Dim A As Range
  3.     With Sheet1
  4.         Set A = .Cells.Find("工令", lookat:=xlWhole)
  5.         If Not A Is Nothing Then
  6.             Set t = A.CurrentRegion
  7.             t.Offset(0, 1).Resize(t.Rows.Count, 1).Copy Sheet3.[A1]
  8.             t.Offset(0, 3).Resize(t.Rows.Count, 1).Copy Sheet3.[B1]
  9.         End If
  10.     End With
  11. End Sub
複製代碼
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 6# ML089


   大大報歉,我剛剛試過但它只會copy另件料號,我有試過改  t .Offset(0, 0).Resize(t.Rows.Count, 1).Copy Sheet3.[A1]  ,它只會copy"工令", 但如果要copy"品名"就無法照我要的copy到sheet3.[b2] ,請問我還要修改那邊才會讓電腦帶出我指定欄位,感謝大大们的幫忙

TOP

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

TOP

回復 8# GBKEE

情況如果是這樣

12233.JPG (193.65 KB)

12233.JPG

122.JPG (178.38 KB)

122.JPG

Book1.rar (21.77 KB)

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

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題