Excel精英培训网

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

[已解决]vba使用代码一次清除textbox数据时有几个无法清除

[复制链接]
发表于 2015-9-6 21:41 | 显示全部楼层 |阅读模式
本帖最后由 hyfire2008 于 2015-9-6 21:44 编辑

大家好:
    刚在做一个vba一次性清除很多个textbox中的数值时,其中总是有4个textbox在第一次单机按钮时无法清除,要在第二次才能清除掉,仔细检查过那4个单元格与其相同的textbox是一样的,请各位高手帮忙瞧瞧,感谢!(密码:123和456)
QQ截图20150906205150.png
mr.zip (320.15 KB, 下载次数: 6)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-9-6 22:39 | 显示全部楼层    本楼为最佳答案   
清除的代码改成这样吧。
主要问题是因为先清空了后面的,再清空前面的,清空前面时,又因为事件的原因,导致后面的就变成0.
所以应该先清除前面再清除后面的,这样就好了。
  1. Private Sub CommandButton1_Click()
  2.     Dim ctl As Object, arr, a&, b&, bb&
  3.     ReDim arr(1 To Me.Controls.Count, 1 To 3)
  4.     For Each ctl In Me.Controls
  5.         If TypeName(ctl) = "TextBox" Then
  6.             a = a + 1
  7.             If ctl.Name Like "*XS_*" Or ctl.Name Like "*JE_*" Then
  8.                 arr(a, 2) = ctl.Name
  9.             ElseIf ctl.Name Like "*LR_*" Then
  10.                 arr(a, 3) = ctl.Name
  11.             Else
  12.                 arr(a, 1) = ctl.Name
  13.             End If
  14.         End If
  15.     Next
  16.     For bb = 1 To 3
  17.         For b = 1 To UBound(arr)
  18.             If arr(b, bb) <> "" Then Controls(arr(b, bb)).Text = ""
  19.         Next
  20.     Next
  21. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-9-7 13:02 | 显示全部楼层
gufengaoyue 发表于 2015-9-6 22:39
清除的代码改成这样吧。
主要问题是因为先清空了后面的,再清空前面的,清空前面时,又因为事件的原因,导 ...

非常感谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 10:14 , Processed in 0.301066 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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