If Not A Is Nothing Then A.CurrentRegion.Copy Sheet2.[A1]
End With
End Sub
複製代碼
作者: hu0318s 時間: 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 =結束陳述
不知我的了解是否有誤作者: GBKEE 時間: 2013-11-27 13:50
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
複製代碼
作者: hu0318s 時間: 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 ,報歉又麻煩大大们作者: ML089 時間: 2013-11-27 22:44
報歉又在麻煩大大,我在練習時碰到我的資料如果不是像上次一樣是連續性的,中間會有空白欄位 我爬過文 http://forum.twbts.com/viewthread.php?tid=4972&highlight=END
Sub Ex()
Dim Rng As Range
Set Rng = [B5:B50]
Set Rng = Rng.SpecialCells(xlCellTypeConstants)
Set Rng = Rng.Areas(Rng.Areas.Count)
Rng.Cells(Rng.Rows.Count, 1).Select
報歉真的不太了解這段訊息的意義,我執行過可以抓到資料到最後一行,也努力去了解,想辦法套進去程式內,也試過用Range("a65536"),end(xlup)抓取資料,但都無法成功,所以要麻煩大大指導作者: GBKEE 時間: 2013-12-6 14:54
回復 21#hu0318s
SpecialCells 方法 傳回 Range 物件,此物件代表與指定型態及值相符合的所有儲存格。Range 物件。
EntireColumn 屬性 傳回 Range 物件,該物件代表包含該指定範圍的整個欄 (或若干欄)。
Areas 屬性 傳回 Areas 集合,此集合代表多重範圍中的所有範圍。
Option Base 1
Sub Ex2()
Dim ar(), i As Integer, a As Range
Sheet2.[a:x].Clear
ar = Array("T1", "T2", "t3")
With Workbooks.Open(Filename:="C:\123.xls")
For i = 1 To UBound(ar)
Set a = .Worksheets("data").Cells.Find(ar(i), lookat:=xlWhole)
If Not a Is Nothing Then a.EntireColumn.SpecialCells(xlCellTypeConstants).Copy Worksheets(2).Cells(1, i)