高手帮帮忙!在Excel做按钮,怎么写代码?

yueyiggjjddmm 2008-03-19 10:44:29
打开附件Excel (0000.xls)表格
...全文
308 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
关注 接分
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
这个简单啊,网上搜一下就得到答案了.
舉杯邀明月 2008-03-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Tiger_Zhao 的回复:]
要循环很简单

VBScript codePrivate Sub CommandButton1_Click()
Dim aChecks()
Dim i As Long

aChecks = Array(CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8, CheckBox9)
For i = 0 To UBound(aChecks)
Debug.Print i, aChecks(i)
Next
End Sub
[/Quote]

我怎么没想到呢,多谢指教 ^_^
clear_zero 2008-03-28
  • 打赏
  • 举报
回复
Private Sub CommandButton1_Click()
Dim aChecks()
Dim i As Long

aChecks = Array(CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8, CheckBox9)
For i = 0 To UBound(aChecks)
Debug.Print i, aChecks(i)
Next
End Sub


'---------------------
欢迎来我的小店坐坐: 程序员雅琪的小店
yueyiggjjddmm 2008-03-28
  • 打赏
  • 举报
回复
谢谢你!真好用。
Tiger_Zhao 2008-03-24
  • 打赏
  • 举报
回复
要循环很简单
Private Sub CommandButton1_Click()
Dim aChecks()
Dim i As Long

aChecks = Array(CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6, CheckBox7, CheckBox8, CheckBox9)
For i = 0 To UBound(aChecks)
Debug.Print i, aChecks(i)
Next
End Sub
舉杯邀明月 2008-03-24
  • 打赏
  • 举报
回复
  如果在Sheet1的后面选一“不用”的列来记录CheckBox的状态(但这列的数据不能人为更改)
CommandButton1 的 Click() 事件中就可以用循环来处理了。


舉杯邀明月 2008-03-24
  • 打赏
  • 举报
回复
VBA不支持控件数组,郁闷呀!
你把下面这段代码贴到Sheet1的代码模块中:
Option Explicit

Private Sub CheckBox1_Click()

If (CheckBox1 = True) Then
Range("A3:K3").Interior.ColorIndex = 40
Else
Range("A3:K3").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox2_Click()

If (CheckBox2 = True) Then
Range("A4:K4").Interior.ColorIndex = 40
Else
Range("A4:K4").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox3_Click()

If (CheckBox3 = True) Then
Range("A5:K5").Interior.ColorIndex = 40
Else
Range("A5:K5").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox4_Click()

If (CheckBox4 = True) Then
Range("A6:K6").Interior.ColorIndex = 40
Else
Range("A6:K6").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox5_Click()

If (CheckBox5 = True) Then
Range("A7:K7").Interior.ColorIndex = 40
Else
Range("A7:K7").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox6_Click()

If (CheckBox6 = True) Then
Range("A8:K8").Interior.ColorIndex = 40
Else
Range("A8:K8").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox7_Click()

If (CheckBox7 = True) Then
Range("A9:K9").Interior.ColorIndex = 40
Else
Range("A9:K9").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox8_Click()

If (CheckBox8 = True) Then
Range("A10:K10").Interior.ColorIndex = 40
Else
Range("A10:K10").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CheckBox9_Click()

If (CheckBox9 = True) Then
Range("A11:K11").Interior.ColorIndex = 40
Else
Range("A11:K11").Interior.ColorIndex = xlNone
End If

End Sub

Private Sub CommandButton1_Click()

Dim i%, j&
Dim objRangA As Range, objRangB As Range

j = 3
While (Sheet2.Range("A" & j).Text > ""): j = j + 1: Wend
If (CheckBox1 = True) Then
Set objRangA = Sheet1.Range("A" & (3))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox2 = True) Then
Set objRangA = Sheet1.Range("A" & (4))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox3 = True) Then
Set objRangA = Sheet1.Range("A" & (5))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox4 = True) Then
Set objRangA = Sheet1.Range("A" & (6))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox5 = True) Then
Set objRangA = Sheet1.Range("A" & (7))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox6 = True) Then
Set objRangA = Sheet1.Range("A" & (8))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox7 = True) Then
Set objRangA = Sheet1.Range("A" & (9))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox8 = True) Then
Set objRangA = Sheet1.Range("A" & (10))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
If (CheckBox9 = True) Then
Set objRangA = Sheet1.Range("A" & (11))
Set objRangB = Sheet2.Range("A" & j)
For i = 1 To 11
objRangB.Columns(i).Formula = objRangA.Columns(i).Text
Next
j = j + 1
End If
Set objRangA = Nothing
Set objRangB = Nothing

End Sub
zuoxingyu 2008-03-20
  • 打赏
  • 举报
回复
沙发,接分,顶
yueyiggjjddmm 2008-03-20
  • 打赏
  • 举报
回复
对,请高手帮忙!
舉杯邀明月 2008-03-20
  • 打赏
  • 举报
回复
是不是点“登记选中”按钮时,就把在L列“钩”上的都写到“登记”表中呀?

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧