- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
9#
發表於 2011-1-10 00:04
| 只看該作者
回復 6# linshin1999
2).For Each E In Sheet1.Range("A:A").SpecialCells(xlCellTypeConstants)
中如果只這樣寫 Sheet1.range("A:A") 和 Sheet1.Range("A:A").SpecialCells(xlCellTypeConstants) 的差別在那裡? 不是都會掃描一遍嗎?
這是不同的,SpecialCells(xlCellTypeConstants)是常數儲存格,也就是會略過空格。你用錄製巨集方式,選取A欄/常用/尋找與取代/特殊/常數看看程式碼就知道
3).I = Application.Match(E, Sheet2.Range("A:A"), 0)
這樣一行這會在Sheet2.Range("A:A")掃描出相等的資嗎?
這是利用工作表函數MATCH找到對應位置,若沒找到正確資料會傳回錯誤植
4.)If IsNumeric(I) Then E.End(xlToRight).Offset(, 1) = Sheet2.Cells(I, "B")
為什麼要作做 IsNumeric(I) 這個動作 呢?
如果 Application.Match(E, Sheet2.Range("A:A"), 0)能找到對應值,表示I彙是個長整數,所以是數值,沒找到就應是錯誤植,可用ISERROR函數測試。
您對EXCEL VBA的熱忱,小弟十分敬佩,不過在此提醒您,VBA還是要由EXCEL基本操作及功能著手,才能事半功倍。 |
|