- 帖子
- 27
- 主題
- 7
- 精華
- 0
- 積分
- 69
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2007
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-4-19
- 最後登錄
- 2012-6-26
|
7#
發表於 2011-4-25 21:36
| 只看該作者
本帖最後由 atuan207 於 2011-4-25 21:50 編輯
oobird大大我想請教一下程式
因為我正在自學VBA中,所以可能有些變數和用法不是那麼熟悉。
想試著做註解讓自己更觀念能清楚
下面我試著註解來請教
Sub yy()
Dim c As Range, i%
// 這個i%有點不太懂,但是試著讓他輸出後,可以知道是我有幾個值,它便會是幾個值
(所以應該是算變數有幾筆,並和位置做連結EX (i,2) 就是(1,2)、(2,2)....一直下去)
With Sheet1
// with是同樣的東西做精簡,所以後面只要是"sheet1."什麼的都只要用".什麼表示"
For i = 2 To .[a65536].End(3).Row
//For 初值 To 到 結束的值 但不懂後面這 .End(3).Row這邊是做什麼用的
Set c = Sheet2.[a:a].Find(.Cells(i, 2))
//配合Nothing的用法,set 範圍A = 相交的範圍
//不知道這樣解釋對不對 sheet2[a:a] 中的值,去找(sheet1.cells(i,2))中的值
//但是sheet2[a:a] 我不懂[a:a]的用法
If Not c Is Nothing Then
.Cells(i, 3).Resize(, 2) = c(1, 2).Resize(, 2).Value
//如果沒有和c的一樣的結果,
//那麼將把值放回Sheet1的第C行,.Resize(, 2) 這我不懂是什麼 所以後面就不懂了
End If
Set c = Sheet3.[a:a].Find(.Cells(i, 1))
//比對完Sheet2換Sheet3
If Not c Is Nothing Then
.Cells(i, 5).Resize(, 3) = c(1, 2).Resize(, 3).Value
End If
Next
End With
End Sub
以下是把想問的彙整一下
Q1: i%的用法和我想的一樣嗎???,那"變數%"的用法是什麼啊??
Q2: .End(3).Row這邊是做什麼用的???
Q3: [a:a]的用法
Q4: .Resize的用法
Q5: 執行後會出現這樣的警告,我該如何存檔會比較好?
大概這五個問題
我自己有稍微google一下,但是像Q4找出來的結果看了還是不太懂,
而且手邊的書本好像也沒有提到,所以想請教板上的大大
麻煩了~~ |
|