Re: [問題] EXCEL這樣VBA邏輯要怎麼寫

看板Office作者 (小建)時間13年前 (2013/01/31 22:31), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《zchien (小建)》之銘言: : (若是和其他不同軟體互動之問題 請記得一併填寫) : 軟體:EXCEL : 版本:2007 : 我有數10比欄位 : 下面分別有a結尾和b結尾的data如下 : A欄位 B欄位 C欄位 D欄位 : 201a 201a 201a 201a : 202a 202a 202a 202a : 203a 203a 203a 203a : 204a 204a 204a 204a : 1234b 205a 205a 205a : 1235b 206a 206a 1234b : 207a 1234b 1235b : 1234b 1235b 1236b : 1235b 1236b : 1236b : 我希望寫一個儲存格...那儲存格內... : 需要填入該欄位...a結尾的最後一個data..和所有b結尾data : 例如..A欄位最下面建立一個儲存格...那格內會填入204a+1234b+1235b : B欄位最下面建立一個儲存格...那格內會填入207a+12234b+1235b+1236b : C欄位最下面建立一個儲存格...那格內會填入206a+1234b+1235b+1236b : 麻煩網友幫忙了...謝謝 感謝soyoso網友提供寫法...看起來是可行的 下面是他的程式... Sub test() Dim C&, R&, Str$, LR& For C = 1 To [a1].End(2).Column LR = Cells(Cells.Rows.Count, C).End(3).Row: Str = "" For R = LR To 1 Step -1 If Right(Cells(R, C), 1) = "a" Then Str = Cells(R, C) & "+" & Str Exit For Else Str = Cells(R, C) & "+" & Str End If Next Cells(LR + 1, C) = Left(Str, Len(Str) - 1) Next End Sub ============================== 但是有幾個寫法...看不太懂...不知道是否可以解釋一下 Dim C&, R&, Str$, LR& =>宣告我認知是要用integer,string之類..&這是宣告成什麼?? For C = 1 To [a1].End(2).Column => [a1].End(2)這用法我沒看過..是否可解釋 LR = Cells(Cells.Rows.Count, C).End(3).Row: Str = "" =>.End(3)這用法是什麼... .End(2)和.End(3)差異是什麼... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.136.7

02/01 09:05, , 1F
&=Long,$=String
02/01 09:05, 1F

02/01 09:11, , 2F
[a1].end(2) = range("a1").end(xlToRight)
02/01 09:11, 2F

02/01 09:12, , 3F
End(3) = End(xlUp)
02/01 09:12, 3F

02/01 09:12, , 4F
抱歉~省略了點
02/01 09:12, 4F

02/01 18:44, , 5F
感謝你的教學...獲益良多..你這也是VBA語法嗎.書上沒看過
02/01 18:44, 5F

02/01 18:45, , 6F
那在請問end(xlLeft)和End(xlDown)..分別又是End(???)呢?
02/01 18:45, 6F

02/01 19:04, , 7F
是VBA語法,可在VBE內以按F2,查參數對應的代碼
02/01 19:04, 7F

02/01 19:05, , 8F
不一定都有就是
02/01 19:05, 8F

02/01 19:06, , 9F
xlleft=1,xldown=4,左右上下=1234
02/01 19:06, 9F
文章代碼(AID): #1H2e0aK2 (Office)
討論串 (同標題文章)
文章代碼(AID): #1H2e0aK2 (Office)