請問在Excel中使用MS VB寫程式
例如設定k = 1
但我想顯示的是 00001
網路上查詢一下,有說Format(k, "00000")
是可行的
但我始終一直失敗
之後再excel使用函數
是可行的
但我要如何在MS VBA裡面使用
CONCATENATE(REPT("0",5-LEN(K2)),K2)
這段呢
以及,有辦法直接在VBA寫程式
不足5位自動補0呢
我有看到Padleft
可是始終用不成功
感謝
strPadded_1 = Format(3, "00000") '00003 strPadded_2 = Format(23, "00000") '00023 strPadded_3 = Format(123, "00000") '00123
數字前面加個 '(單引號)
或是儲存格格式改成自訂 -> 00000
dj5200037提到:
始終一直失敗
怎麼個失敗法?
這個Format函數的執行是沒有問題的啊...(Tested Excel 2000/XP/2003)
小弟不才
想問問
k = 1
k = Format(k, "00000")
這樣是正確的嗎
我試都是1 不是00001
wiselou應該是說你下的 CONCATENATE(REPT("0",5-LEN(K2)),K2)指令格式(format)
是對的我有試過當K2為零時在此指令格顯示為5個零,當K2=2時指令格為00002
dj5200037提到:
網路上查詢一下,有說Format(k, "00000")
是可行的
但我始終一直失敗
以下狀況假設輸出位置在 A1
<pre class="c" name="code">
A = 456
Range("A1").Value = "'" & Format(A , "00000")
或是先設定儲存格格式
<pre class="c" name="code">
A = 456
Range("A1").NumberFormat = "00000"
Range("A1").Value = A
我想你的問題在 VBA 輸出後 EXCEL 自動幫你轉成數字格式,若要改善可以先設定好儲存格格式或是用VBA 轉成字串。
另外
dj5200037提到:
但我要如何在MS VBA裡面使用
CONCATENATE(REPT("0",5-LEN(K2)),K2)
以這三個函數來說,除了LEN是共通的, CONCATENATE 及 REPT 在 VBA 裡是不可引用的,若用引用 EXCEL 內的函數只能引用 VBA 裡無相同功能的,例如 Vlookup 或 Hlookup 等函數,若要達到與 REPT 相同的功能可以用 STRING , CONCATENATE 則可用 連接符號 &
若要在 VBA 引用 EXCEL 函數可參考 計算非空白儲存格
以上供參考