返回列表 上一主題 發帖

不同工作表內的資料比對與填入.

回復 7# HUNGCHILIN

   阿吉版主:不是考試,是真的不懂,經過你的解釋意思是這樣的嗎?

   Dim a, b As Intger

   1)a 和 b 的型別是不一樣的. (a 是 Variant <Excel 的預設型別> ), b 是Integer .
   2)意思是 Dim 後面的",", 是一個一個變數的分隔, 每個變數都是獨立的.

   希望這次真的搞懂了,寫 VBA 時常在這裡出錯.
V98

TOP

這則好像有考試的感覺
一看到第1項就知道不一樣
舉個例子
Sub DimAs1()
Dim Mynum1, Mynum2 As Integer '這條 Mynum1 不會變Integer
Dim Total As Integer, MyString As String * 4 '字串長度為4

    MyString = _
    "撰寫小技巧": MsgBox MyString: MsgBox TypeName(MyString)

End Sub
Hung-Chi Lin/林宏吉
HUNGCHILIN/林宏吉的OFFICE專欄

TOP

回復 4# GBKEE

請問  宣告式
        1).Dim E As Range , I   和    Dim  E, I  As Range   是一樣的意思嗎?

        2).For Each E In Sheet1.Range("A:A").SpecialCells(xlCellTypeConstants)
            中如果只這樣寫  Sheet1.range("A:A")  和  Sheet1.Range("A:A").SpecialCells(xlCellTypeConstants) 的差別在那裡? 不是都會掃描一遍嗎?

        3).I = Application.Match(E, Sheet2.Range("A:A"), 0)
            這樣一行這會在Sheet2.Range("A:A")掃描出相等的資嗎?

        4.)If IsNumeric(I) Then E.End(xlToRight).Offset(, 1) = Sheet2.Cells(I, "B")
            為什麼要作做  IsNumeric(I) 這個動作 呢?
V98

TOP

回復 4# GBKEE


謝謝.
這是我沒用過的語法.
問題得到解決了.
再來我會研究一下這些語法的內容.

TOP

回復 3# MRSA
  1. Sub Ex()
  2.     Dim E As Range, I
  3.     For Each E In Sheet1.Range("A:A").SpecialCells(xlCellTypeConstants)
  4.         I = Application.Match(E, Sheet2.Range("A:A"), 0)
  5.         If IsNumeric(I) Then E.End(xlToRight).Offset(, 1) = Sheet2.Cells(I, "B")
  6.     Next
  7. End Sub
複製代碼

TOP

回復 2# asus103


使用excel函數這個我知道怎麼寫.
我的問題是,我要使用VBA進行這項工作.我該怎麼寫語法?

TOP

本帖最後由 asus103 於 2011-1-9 17:45 編輯

於SHEET 1 的D1中寫入
=IF(ISERROR(VLOOKUP(A1,Sheet2!A:B,2,FALSE)),"",VLOOKUP(A1,Sheet2!A:B,2,FALSE))
再向下拉
ASUS

TOP

        靜思自在 : 得理要饒人,理直要氣和。
返回列表 上一主題