[VBA ] ExcelVBA小問題求解

看板Visual_Basic作者 (小天)時間8年前 (2016/03/07 19:47), 編輯推噓1(1013)
留言14則, 3人參與, 最新討論串1/1
各位大大 小弟最近想用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的解釋呢? 感謝各位指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.116.8 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1457351279.A.670.html

03/07 20:33, , 1F
03/07 20:33, 1F

03/07 20:34, , 2F
原PO的Cell部份,我想原想先要表達的是列不是欄
03/07 20:34, 2F

03/07 20:36, , 3F
Cells語法為Cells(列,欄)。而在today部份VB則是用
03/07 20:36, 3F

03/07 20:36, , 4F
date代替,today是Excel的用法
03/07 20:36, 4F

03/07 20:37, , 5F
而當要把文字串在一起時,會使用&作為連接符號
03/07 20:37, 5F

03/07 20:40, , 6F
抱歉,Cells部份可能原PO的格式跟我想的不同,請無視
03/07 20:40, 6F

03/07 20:41, , 7F
說明的部份可以在VBE內按下F1,搭配google做練習
03/07 20:41, 7F

03/07 20:50, , 8F
太感謝了我練習看看
03/07 20:50, 8F

03/07 21:03, , 9F
他會在If那一行出現執行階段錯誤13 型態不符合
03/07 21:03, 9F

03/07 21:06, , 10F
是否是時間格式或是其他原因所造成呢?
03/07 21:06, 10F

03/09 00:46, , 11F
你要不要char()看看你儲存格的型態啊?是不是根本dateval
03/09 00:46, 11F

03/09 00:46, , 12F
ue不吃你儲存格的形式…?
03/09 00:46, 12F

03/09 00:47, , 13F
有可能看起來是日期 可是卻是文字之類的…?
03/09 00:47, 13F

03/09 21:20, , 14F
我後來修改直接拿掉Datevalue就可以了 感謝各位
03/09 21:20, 14F
文章代碼(AID): #1MtMflPm (Visual_Basic)
文章代碼(AID): #1MtMflPm (Visual_Basic)