可以請教當欄位不是固定在一個位置我要如何copy到第2活頁
- 帖子
- 29
- 主題
- 5
- 精華
- 0
- 積分
- 82
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- OFFICE2003
- 閱讀權限
- 20
- 註冊時間
- 2012-6-14
- 最後登錄
- 2020-9-14
|
可以請教當欄位不是固定在一個位置我要如何copy到第2活頁
我們家的資料常常會不是固定欄位,我有用if 去抓它的位子,但無法回傳位子訊息給我,所以要請教大大们,我可以用何方式抓取我要的欄位在copy到另一個活頁簿 |
-
-
test1.JPG
(195.48 KB)
-
-
test2.JPG
(120.22 KB)
-
-
Book1.rar
(13.17 KB)
|
|
|
|
|
|
- 帖子
- 29
- 主題
- 5
- 精華
- 0
- 積分
- 82
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- OFFICE2003
- 閱讀權限
- 20
- 註冊時間
- 2012-6-14
- 最後登錄
- 2020-9-14
|
3#
發表於 2013-11-27 00:24
| 只看該作者
謝謝大大 我還是新手所以我把我想的打給你看看
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 =結束陳述
不知我的了解是否有誤 |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2013-11-27 13:50
| 只看該作者
回復 3# hu0318s - Sub ex()
- Dim A As Range 'DIM (宣告為私用變數) A AS(指定變數型態) Range '可參考VBA Range 屬性 的說明
- With Sheet1 'With 陳述式 在一個單一物件或一個使用者自訂型態上執行一系列的陳述式
- Set A = .Cells.Find("工令", lookat:=xlWhole)
- 'a =>Range .儲存格中該物件代表所找到的第一個包含所尋找資訊的儲存格(等....
- If Not A Is Nothing Then A.CurrentRegion.Copy Sheet2.[A1]
- 'Not A Is Nothing :Not (邏輯否定。返轉, 不是) A Is Nothing(A 是 空的變數) -> 有找到
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 29
- 主題
- 5
- 精華
- 0
- 積分
- 82
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- OFFICE2003
- 閱讀權限
- 20
- 註冊時間
- 2012-6-14
- 最後登錄
- 2020-9-14
|
5#
發表於 2013-11-27 22:40
| 只看該作者
報歉剛下班,謝謝大大的教導,我可以在請教一下,如果我只要工令跟品名貼到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 ,報歉又麻煩大大们 |
|
|
|
|
|
|
- 帖子
- 2025
- 主題
- 13
- 精華
- 0
- 積分
- 2053
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- Office2007
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 台北市
- 註冊時間
- 2011-3-2
- 最後登錄
- 2024-3-14
     
|
6#
發表於 2013-11-27 22:44
| 只看該作者
我也來練習一下- Sub ex2()
- Dim A As Range
- With Sheet1
- Set A = .Cells.Find("工令", lookat:=xlWhole)
- If Not A Is Nothing Then
- Set t = A.CurrentRegion
- t.Offset(0, 1).Resize(t.Rows.Count, 1).Copy Sheet3.[A1]
- t.Offset(0, 3).Resize(t.Rows.Count, 1).Copy Sheet3.[B1]
- End If
- End With
- End Sub
複製代碼 |
|
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式
|
|
|
|
|
- 帖子
- 29
- 主題
- 5
- 精華
- 0
- 積分
- 82
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- OFFICE2003
- 閱讀權限
- 20
- 註冊時間
- 2012-6-14
- 最後登錄
- 2020-9-14
|
7#
發表於 2013-11-28 08:38
| 只看該作者
回復 6# ML089
大大報歉,我剛剛試過但它只會copy另件料號,我有試過改 t .Offset(0, 0).Resize(t.Rows.Count, 1).Copy Sheet3.[A1] ,它只會copy"工令", 但如果要copy"品名"就無法照我要的copy到sheet3.[b2] ,請問我還要修改那邊才會讓電腦帶出我指定欄位,感謝大大们的幫忙 |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
8#
發表於 2013-11-28 10:05
| 只看該作者
回復 7# hu0318s
請附檔,可了解你所說的問題 |
|
|
|
|
|
|
- 帖子
- 29
- 主題
- 5
- 精華
- 0
- 積分
- 82
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- OFFICE2003
- 閱讀權限
- 20
- 註冊時間
- 2012-6-14
- 最後登錄
- 2020-9-14
|
9#
發表於 2013-11-28 10:21
| 只看該作者
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
10#
發表於 2013-11-28 10:32
| 只看該作者
回復 9# hu0318s - 'End 屬性 傳回 Range 物件,該物件代表包含來源範圍之區域結尾處的儲存格。
- '等於按 END+向上鍵、END+向下鍵、END+向左鍵或 END+向右鍵。唯讀 Range 物件。
- Sub Ex2()
- Dim A As Range
- With Sheet1
- Set A = .Cells.Find("工令", lookat:=xlWhole)
- If Not A Is Nothing Then
- .Range(A, A.End(xlDown)).Copy Sheet3.[A1]
- End If
- Set A = .Cells.Find("品名", lookat:=xlWhole)
- If Not A Is Nothing Then
- .Range(A, A.End(xlDown)).Copy Sheet3.[B1]
- End If
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|