Excel精英培训网

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

[已解决]求助!!如何实现点击输入后,自动清除选项按钮选定内容

[复制链接]
发表于 2014-5-6 11:12 | 显示全部楼层 |阅读模式
本帖最后由 guanghui2099 于 2014-5-6 11:45 编辑

    利用ComboBox1.Text = ""  和 TextBox2.Text = "" 代码已经实现每次点击输入后,自动清除复合框和文字框内容,但是选项按钮(红色框内)的选定状态无法清除,求大神帮忙。
QQ截图20140506110459.png {:041:}
最佳答案
2014-5-6 11:36
这是窗体控件的遍历问题。在输入按钮的最后一段加上下面代码:
Dim op As Control
For Each op In Me.Controls
    If TypeName(op) = "OptionButton" Then op = False
Next

满意度得分统计.zip

28.13 KB, 下载次数: 11

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-5-6 11:22 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-5-6 11:25 | 显示全部楼层
bene 发表于 2014-5-6 11:22
先围观了,待高手出现

刚看到新消息,还激动了一把,心想这么快大神就出现了{:101:}
回复

使用道具 举报

发表于 2014-5-6 11:27 | 显示全部楼层
guanghui2099 发表于 2014-5-6 11:25
刚看到新消息,还激动了一把,心想这么快大神就出现了

大神这个点都还在忙,只有我这样的水客,先围观帮你顶下帖子
回复

使用道具 举报

 楼主| 发表于 2014-5-6 11:29 | 显示全部楼层
bene 发表于 2014-5-6 11:27
大神这个点都还在忙,只有我这样的水客,先围观帮你顶下帖子

那也十分感谢了
回复

使用道具 举报

发表于 2014-5-6 11:36 | 显示全部楼层    本楼为最佳答案   
这是窗体控件的遍历问题。在输入按钮的最后一段加上下面代码:
Dim op As Control
For Each op In Me.Controls
    If TypeName(op) = "OptionButton" Then op = False
Next
回复

使用道具 举报

 楼主| 发表于 2014-5-6 13:10 | 显示全部楼层
问题已解决,上传完整版,供参考

满意度得分统计(问题已解决,供大家参考).zip

29.88 KB, 下载次数: 13

回复

使用道具 举报

发表于 2014-5-6 14:34 | 显示全部楼层
你的代码有点啰嗦,简化一下。
  1. Private Sub CommandButton1_Click()
  2.     Dim mrow As Long
  3.     mrow = Range("A65536").End(xlUp).Row + 1
  4.     Range("a" & mrow) = ComboBox1.Value
  5.     Range("b" & mrow) = TextBox1.Value
  6.     Dim op As Control
  7.     For Each op In Me.Controls
  8.         If TypeName(op) = "OptionButton" Then
  9.             If op = True Then
  10.                 c = Val(Replace(op.Name, "OptionButton", ""))
  11.                 If c <= 4 Then col = "C"
  12.                 If c > 4 And c <= 8 Then col = "D"
  13.                 If c > 9 And c <= 12 Then col = "E"
  14.                 If c > 12 And c <= 16 Then col = "F"
  15.                 If c > 16 And c <= 20 Then col = "G"
  16.                 Cells(mrow, col) = op.Caption
  17.                 op = False
  18.             End If
  19.         End If
  20.     Next
  21.     Range("h" & mrow) = TextBox2.Value
  22.     ComboBox1.Text = ""
  23.     TextBox2.Text = ""
  24. End Sub
复制代码
回复

使用道具 举报

发表于 2014-5-6 14:43 | 显示全部楼层
由于你的OPtionButton排列得很有规律,因此代码还可以进一步简化。
  1. Private Sub CommandButton1_Click()
  2.     Dim mrow As Long
  3.     mrow = Range("A65536").End(xlUp).Row + 1
  4.     Range("a" & mrow) = ComboBox1.Value
  5.     Range("b" & mrow) = TextBox1.Value
  6.     Dim op As Control
  7.     For i = 1 To 20
  8.         Set op = Me.Controls("OptionButton" & i)
  9.         If op = True Then
  10.            col = 3 + Int((i - 1) / 4)  '根据op的序号取得工作表对应列数
  11.             Cells(mrow, col) = op.Caption
  12.             op = False
  13.         End If
  14.     Next
  15.     Range("h" & mrow) = TextBox2.Value
  16.     ComboBox1.Text = ""
  17.     TextBox2.Text = ""
  18. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-5-6 15:31 | 显示全部楼层
grf1973 发表于 2014-5-6 14:43
由于你的OPtionButton排列得很有规律,因此代码还可以进一步简化。

{:181:}我就一菜鸟入门级小白,代码都是东拼西凑的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 07:57 , Processed in 3.885285 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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