ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1093|回复: 5

[求助] 批量创建按钮 下标越界,请老师帮忙看下

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-14 18:42 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Private Sub Cmb创建_Click()
Dim str, XM As String

    Dim RS7 As Recordset
    Dim DB7 As Database
    Set DB7 = OpenDatabase(ThisWorkbook.Path & "\" & "资料库.MDB")
    Set RS7 = DB7.OpenRecordset(Name:="员工资料", Type:=dbOpenDynaset)
    With RS7
        For n = 1 To 4
            .FindFirst "ID=" & n
            If Not .NoMatch Then
                XM = .Fields("姓名").Value
                If n = 1 Then
                    str = XM
                Else
                    str = str & "," & XM
                End If
            End If
        Next
    End With
    RS7.Close
    Set RS7 = Nothing
    Set DB7 = Nothing

crr = Array(str)                        ????请问这里我的str 要怎么写,感谢各位老师

For i = 0 To 3
    Set mycmd(i).com = Controls.Add("Forms.CommandButton.1", crr(i), True)               下标越界
    With mycmd(i).com
        .Left = (i + 1) * 50
        .Top = 20
        .Width = 40
        .Height = 30
        .Caption = crr(i)
    End With
Next

End Sub





Public WithEvents com As MSForms.CommandButton

Public Sub com_Click()
myname = com.Caption '此处获得按钮名称
MsgBox "已生成控件" & myname
'可以根据不同myname,继续你的代码
End Sub

TA的精华主题

TA的得分主题

发表于 2018-7-14 19:52 | 显示全部楼层
窗体上创建控件有这么麻烦吗?类似的代码我也写过,也就几句而已啊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-14 19:58 | 显示全部楼层
活在理想的世界 发表于 2018-7-14 19:52
窗体上创建控件有这么麻烦吗?类似的代码我也写过,也就几句而已啊。

菜鸟新入,你懂得,麻烦看下,要怎么写

TA的精华主题

TA的得分主题

发表于 2018-7-14 20:08 | 显示全部楼层
本帖最后由 活在理想的世界 于 2018-7-14 20:16 编辑
合肥好汉 发表于 2018-7-14 19:58
菜鸟新入,你懂得,麻烦看下,要怎么写
不知道为什么附件传不上来了,自己新建一个工作簿,自己画一个空白窗体,然后在Sheet1的A列写一下按钮的名称,运行下面的代码

  1. Private Sub UserForm_Activate()
  2. Dim arr(): arr = Sheet1.Range("a1").CurrentRegion
  3. Dim c As CommandButton
  4. For i = 1 To UBound(arr)
  5.     Set c = Me.Controls.Add("Forms.CommandButton.1", i)
  6.     c.Left = 30: c.Top = i * 35: c.Width = 60: c.Height = 30: c.Caption = arr(i, 1)
  7. Next
  8. End Sub
复制代码



TA的精华主题

TA的得分主题

发表于 2018-7-14 20:16 | 显示全部楼层
合肥好汉 发表于 2018-7-14 19:58
菜鸟新入,你懂得,麻烦看下,要怎么写
  1. Private Sub UserForm_Activate()
  2. Dim arr(): arr = Sheet1.Range("a1").CurrentRegion
  3. Dim c As CommandButton
  4. For i = 1 To UBound(arr)
  5.     Set c = Me.Controls.Add("Forms.CommandButton.1", i)
  6.     c.Left = 30: c.Top = i * 35: c.Width = 60: c.Height = 30: c.Caption = arr(i, 1)
  7. Next
  8. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-14 21:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢,谢谢。稍微改动下,完美执行
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-9 14:52 , Processed in 0.027704 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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