data 2 a b c d 678
a b c d 234
efg
目的: 將DATA 1: 456+234 置於O1
DATA 2: 678+234+777 置於O2
PS: 有時,:a B C D 很多行, 結束,都是efg...
狀態:
1. iF .END .寫不出來. 總是出現ENDIF...
2. n=n1+n2. 無法加總...
Dim lngCurrRow As Long
Set objFolder = fso.GetFolder(ThisWorkbook.Path)
lngCurrRow = 0
For Each objFile In objFolder.Files
If Left(objFile.Name, 1) = "G" Then
Set wbCurr = Application.Workbooks.Open(Filename:=objFile.Path)
If wbCurr.Sheets(1).[A1] <> "" Then
textline1 = wbCurr.Sheets(1).[A12]
n1 = Split(textline1, " ")(4)
textline2 = wbCurr.Sheets(1).[A13]
? IF MID(TEXTLINE2,1,1)="a" then n2 = Split(textline2, " ")(4)
? textline3 = wbCurr.Sheets(1).[A14]
END
?
? IF MID(TEXTLINE3,1,1)="a" then n3 = Split(textline3, " ")(4)
? END
? n = n1+ n2+n3
ThisWorkbook.Sheets("List").[o1].Offset(lngCurrRow) = n
lngCurrRow = lngCurrRow + 1
End If
wbCurr.Close (False)
End If
Set wbCurr = Nothing
Next作者: luhpro 時間: 2011-4-28 21:34
本帖最後由 luhpro 於 2011-4-28 21:41 編輯
Excel VBA 用的語法是 VB 的, 它表現在 if ... then ... end 迴圈的方式,
一般來說有兩種 :
1.
If 條件式 Then 左方條件為真時執行此
(本 If 條件式 {全部} 都只能寫在同一行且到此為止, 後面不可再加 End If)
2.
If 條件式 Then
上述條件為真時執行此
Else(If 條件式 Then)
上述條件為真時執行此
(Else)
上述條件為偽時執行此
End If
你的程式不能執行可能就是因為語法不對, 後面對不上所以出現錯誤.
另若對某一個指令語法不熟悉,
可以 Mark 該指令後按 F1 按鍵取得該指令的說明, (本例中只要 Mark If 兩個字後按 F1 即可看到說明)
其中的範例大都可以直接 Copy 過來修改成自己要的程式碼.