[VBA ] ExcelVBA小問題求解

作者: goodian (小天)   2016-03-07 19:47:56
各位大大
小弟最近想用VBA加速修改資料的速度
礙於自己之前只有學過C
對VBA完全一竅不通
自己沒辦法Debug
實在爬文了好久也不會
因此上來懇請指點一二
最近想把資料整理成如果表格內的日期已經過去就在日期上面加上括號
反之則不加括號 因此寫了一個BUG超多的VBA 也不知從何Debug起
獻醜了
Public Sub datechange()
For i = 2 To 5000
If DateValue(Cells(10, i)) < DateValue(today()) Then
Print "("; Cells(10, i); ")"
Else: Print Cells(10, i)
Next
End Sub
不知道這樣到底要怎麼修改才對
另外想請問到底有沒有推薦的網頁或是推薦的書給初學者入門呢?
還有哪邊可以看到所有Command的解釋呢?
感謝各位指點
作者: MashiroX421 (三峰真白)   2016-03-07 20:33:00
http://i.imgur.com/m6iOM7D.png 改這樣參考看原PO的Cell部份,我想原想先要表達的是列不是欄Cells語法為Cells(列,欄)。而在today部份VB則是用date代替,today是Excel的用法而當要把文字串在一起時,會使用&作為連接符號抱歉,Cells部份可能原PO的格式跟我想的不同,請無視說明的部份可以在VBE內按下F1,搭配google做練習
作者: goodian (小天)   2016-03-07 20:50:00
太感謝了我練習看看他會在If那一行出現執行階段錯誤13 型態不符合
作者: MashiroX421 (三峰真白)   2016-03-07 21:06:00
是否是時間格式或是其他原因所造成呢?
作者: MAGICXX (逢甲阿法)   2016-03-09 00:46:00
你要不要char()看看你儲存格的型態啊?是不是根本datevalue不吃你儲存格的形式…?有可能看起來是日期 可是卻是文字之類的…?
作者: goodian (小天)   2016-03-09 21:20:00
我後來修改直接拿掉Datevalue就可以了 感謝各位

Links booklink

Contact Us: admin [ a t ] ucptt.com