Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2129|回复: 11

如何用VBA一键为A列空值填入0

[复制链接]
发表于 2022-3-28 12:24 | 显示全部楼层 |阅读模式
请教老师,如何用VBA一键为A列空格填入0

一键为A列空值填入0.rar

11.09 KB, 下载次数: 15

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-3-28 13:36 | 显示全部楼层
Sub aa()
a = Sheet1.[a65536].End(3).Row
For x = 2 To a
If Cells(x, 1) = "" Then
Cells(x, 1) = 0
Else
End If
Next x
End Sub
回复

使用道具 举报

发表于 2022-3-28 14:04 | 显示全部楼层
一键为A列空值填入0.zip (30.97 KB, 下载次数: 1)
回复

使用道具 举报

 楼主| 发表于 2022-3-28 15:04 | 显示全部楼层

老师好,如果遇到以下情况都强行填入0,该怎么做啊!谢谢!!!
#NULL!
#DIV/0!
#VALUE!
#REF!
#NAME?
#NUM!
#N/A

回复

使用道具 举报

发表于 2022-3-28 15:07 | 显示全部楼层
ck03w11 发表于 2022-3-28 15:04
老师好,如果遇到以下情况都强行填入0,该怎么做啊!谢谢!!!

一键为A列空值填入0.zip (30.84 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2022-3-28 16:14 | 显示全部楼层
  1. Sub demo()
  2. Dim i As Long, arr
  3. arr = Sheet1.Range("a2:a" & Sheet1.Cells(Rows.Count, 1).End(xlUp).Row)
  4.     For i = 1 To UBound(arr)
  5.         If VBA.IsNumeric(arr(i, 1)) = False Then
  6.             arr(i, 1) = 0
  7.         End If
  8.     Next i
  9.     Sheet1.Range("b2").Resize(UBound(arr)) = arr    '把这个b2单元格改成A2就可以了
  10. End Sub
复制代码
思路:
判断A列数据不是数字类型全部赋值“0”即可,用数组速度会更快

1648455234(1).jpg
回复

使用道具 举报

发表于 2022-3-28 20:39 | 显示全部楼层
ck03w11 发表于 2022-3-28 15:04
老师好,如果遇到以下情况都强行填入0,该怎么做啊!谢谢!!!
  1. Sub text()
  2. Dim x%
  3. For x = 1 To Range("a65536").End(3).Row
  4.     If IsError(Cells(x, 1)) Or Cells(x, 1) = "" Then
  5.         Cells(x, 1) = 0
  6.     End If
  7. Next
  8. End Sub
复制代码


回复

使用道具 举报

 楼主| 发表于 2022-3-29 08:34 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2022-3-29 08:58 | 显示全部楼层

还是没有绕开#N/A弹出类不匹配
回复

使用道具 举报

 楼主| 发表于 2022-3-29 09:02 | 显示全部楼层
林木水 发表于 2022-3-28 16:14
思路:
判断A列数据不是数字类型全部赋值“0”即可,用数组速度会更快

谢谢老师,这个行了谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-29 20:28 , Processed in 0.399682 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表