Excel精英培训网

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

[已解决]VBA指定单元格无内容时按钮控件禁止

[复制链接]
发表于 2017-2-11 09:40 | 显示全部楼层 |阅读模式
在Sheet1表中添加了一个按钮控件,要求当D5单元格无内容时,此按钮控件显示灰色或禁止按动,有内容时或输入内容后按钮控件恢复,怎么写代码,请哪位老师帮忙写一下,谢谢!

最佳答案
2017-2-11 10:54
wwj804 发表于 2017-2-11 10:34
Private Sub CommandButton1_Click()

  

把代码放在你有按钮的那个工作表内就可以了

复制代码
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If  [D5] = "" Then
  3.        CommandButton1.Enabled = False
  4.     Else
  5.        CommandButton1.Enabled = True
  6.     End If
  7. End Sub
复制代码


发表于 2017-2-11 10:13 | 显示全部楼层
在按钮代码开始处加一句
  1. Sub 按钮1_Click()
  2. If Sheet1.[D5] = "" Then Exit Sub
  3. ''''你的代码
  4. End Sub
复制代码

这样如果D5单元格无内容时,按钮点击无反应,不执行你的代码,有内容才执行
回复

使用道具 举报

 楼主| 发表于 2017-2-11 10:34 | 显示全部楼层
02761752696 发表于 2017-2-11 10:13
在按钮代码开始处加一句

这样如果D5单元格无内容时,按钮点击无反应,不执行你的代码,有内容才执行

Private Sub CommandButton1_Click()

  
   
ActiveSheet.Unprotect Password:=admins '撤消工作表保护并取消密码

Sheets("创建生产指令").Range("L1") = 1 + Sheets("创建生产指令").Range("L1")

Application.ScreenUpdating = False
N = 1
arr = Sheets("创建生产指令").Range("a5:k" & Sheets("创建生产指令").Range("a65536").End(3).Row)
ReDim brr(1 To UBound(arr), 1 To 14)
    For i = 1 To UBound(arr)
        For j = 2 To 11
          brr(i, j) = arr(i, j)
        Next j
        brr(i, 1) = Sheets("合计").Range("a" & Sheets("合计").Range("a65536").End(3).Row) + N
        N = N + 1
        brr(i, 12) = Sheets("创建生产指令").Range("J3")
        brr(i, 13) = Sheets("创建生产指令").Range("J2")
        brr(i, 14) = Sheets("创建生产指令").Range("C3")
    Next i
Sheets("合计").Range("a" & Sheets("合计").Range("a65536").End(3).Row + 1).Resize(UBound(arr), 14) = brr
Application.ScreenUpdating = True

ActiveSheet.Protect Password:=admins '保护工作表并设置密码

End Sub


回复

使用道具 举报

发表于 2017-2-11 10:51 | 显示全部楼层
wwj804 发表于 2017-2-11 10:34
Private Sub CommandButton1_Click()

  

是这样的 ???
0001.gif
回复

使用道具 举报

发表于 2017-2-11 10:54 | 显示全部楼层    本楼为最佳答案   
wwj804 发表于 2017-2-11 10:34
Private Sub CommandButton1_Click()

  

把代码放在你有按钮的那个工作表内就可以了

复制代码
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If  [D5] = "" Then
  3.        CommandButton1.Enabled = False
  4.     Else
  5.        CommandButton1.Enabled = True
  6.     End If
  7. End Sub
复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 08:18 , Processed in 0.269809 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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