標題:
[發問]
請教如何讓VBA自動將空白處自動填入數字0 ?
[打印本頁]
作者:
jonn0510
時間:
2012-6-18 18:06
標題:
請教如何讓VBA自動將空白處自動填入數字0 ?
請教各位大大:
若A1~A8的數字如下
A1 A2 A3 A4 A5 A6 A7 A8
2 5 1 1 4
其中A1.A4.A7這3各儲存格式空白的,請問如何讓VBA自動將空白處自動填入數字0 ? 謝謝
希望能藉由VBA判斷後,自動填入
A1 A2 A3 A4 A5 A6 A7 A8
0 2 5 0 1 1 0 4
作者:
register313
時間:
2012-6-18 21:58
回復
1#
jonn0510
Sub yy()
On Error Resume Next
[A1:A8].SpecialCells(xlCellTypeBlanks) = 0
End Sub
複製代碼
作者:
jonn0510
時間:
2012-6-19 05:56
回復
2#
register313
register313 大大:
OK!感謝您的指導,謝謝您.
作者:
GBKEE
時間:
2012-6-19 07:55
On Error Resume Next 程式中會不易除錯
Sub Ex()
If [COUNTA(A1:A8)] <> [A1:A8].Count Then [A1:A8].SpecialCells(xlCellTypeBlanks) = 0
'工作表函數 COUNTA(A1:A8) : 計算範圍內有資料的數目
'[A1:A8].Count VBA:Count 屬性 傳回一個 Long (長整數),等於在一個集合物件中的物件數目。唯讀。
'SpecialCells 方法 傳回Range 物件,此物件代表與指定型態及值相符合的所有儲存格。Range 物件。
End Sub
複製代碼
作者:
freeffly
時間:
2012-6-19 08:37
回復
4#
GBKEE
原來可以使用[]這種方式
我可能會認為COUNTA(A1:A8)這種用法出錯是因為沒辦法用那種方式處理
出現必須":清單分除字元或是)" 這種字眼時如果沒有錯誤還真的不知道如何解決
作者:
oobird
時間:
2012-6-19 09:19
[a1:a8].Replace "", "0", 1
作者:
freeffly
時間:
2012-6-19 09:26
回復
6#
oobird
版主你的程式碼運行沒出現錯誤但是不會有0
這種replace沒看過
有什麼條件嗎
我在一個空白工作表執行
正常A1:A8都會為0可是還是空白
作者:
oobird
時間:
2012-6-19 09:47
回復
7#
freeffly
[attach]11443[/attach]
作者:
GBKEE
時間:
2012-6-19 09:48
本帖最後由 GBKEE 於 2012-6-19 09:51 編輯
回復
7#
freeffly
可參考者裡
這選項 有勾選嗎?
[attach]11442[/attach]
作者:
freeffly
時間:
2012-6-19 09:59
本帖最後由 freeffly 於 2012-6-19 10:01 編輯
回復
8#
oobird
我知道差在哪了
我的A1:A8都是空白
我以為會都取代為0
回復
8#
GBKEE
我的那邊是打勾的
原來那邊如果取消會看不到0
一直沒去試
謝謝
作者:
oobird
時間:
2012-6-19 10:12
回復
10#
freeffly
我也知道你的問題在哪了
這裡的REPLACE是方法不是函數,你必須在使用過的工作表使用
若新開一個檔案,沒做過任何輸入是不會執行的
可在任何大於第8列的位置輸入任何東西,刪除了也沒關係,就會被辨識及執行。
作者:
freeffly
時間:
2012-6-19 10:37
回復
11#
oobird
版主
情形很怪
一開始我是再A1:A8的隨便區域裡面打一兩各數字
剛剛是再第8列且第一欄以外的地方輸入資料
結果如附檔
[attach]11444[/attach]
作者:
GBKEE
時間:
2012-6-19 10:38
回復
11#
oobird
If [COUNTA(A1:A8)] <> [A1:A8].Count Then [A1:A8].
SpecialCells
(xlCellTypeBlanks) = 0
SpecialCells
一樣在新工作表 未有輸入時 會有錯誤,也需在大於 A8 的地方有輸入,才會 得到完整的資料
作者:
freeffly
時間:
2012-6-19 10:50
回復
13#
GBKEE
版主可以請教一個問題嗎
replace方法 跟函數的差異?
你另一篇是用函數
不過O版主說他的是方法
看起來很像
我以為只差在()
作者:
GBKEE
時間:
2012-6-19 11:03
回復
14#
freeffly
Replace方法 : => 工作表指令"取代" , 儲存格文字的替換
Replace函數 : 文字字串的替換
傳回一個字串,該字串中指定的子字串已被取代成另一子字串,並且取代發生的次數也是指定的。
作者:
freeffly
時間:
2012-6-19 11:19
回復
15#
GBKEE
回復
15#
oobird
剛發現使用o版主的方式如果是舊檔案新工作表
新工作表必須使用過
而其他不是選擇中的工作表(已經使用過的工作表)竟然也套用方法
所以方法是針對整各儲存格(或者說整檔案中的工作表的儲存格)
函數是針對儲存格裡面的字串去替換
不知道我的理解有沒有錯誤
感覺方法使用上好像變成侷限在少數情形
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)