Excel精英培训网

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

[已解决]Private Sub CommandButton1_Click()的调用问题(附完整文件)

[复制链接]
发表于 2010-12-6 00:11 | 显示全部楼层 |阅读模式

有一个Private Sub CommandButton1_Click()

……

现在想用Application.Run 调用,但在录制宏时无法调用,手工写成以下:

Application.Run "机号与型号.xls!CommandButton1_Click"

无法起效!

以下是代码:

Private Sub CommandButton1_Click()
    Dim Cn As Object, strSql$
    Dim Arr, Ary, k%
    Set Cn = CreateObject("Adodb.Connection")
    Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;Imex=1';Data Source=" & ThisWorkbook.FullName
    Arr = Cn.Execute("Select Distinct 姓名 From [人名-机数-齿数$] Where Not 姓名 Is Null").getrows
    For k = 0 To UBound(Arr, 2)
        strSql = "Select Distinct 机号 From [人名-机数-齿数$] Where 姓名='" & Arr(0, k) & "'"
        Ary = Application.Index(Cn.Execute(strSql).getrows, 0)
        Sheets("列出每人在本月所使用的机号").[A65536].End(3)(2) = Arr(0, k)
        Sheets("列出每人在本月所使用的机号").[B65536].End(3)(2).Resize(1, UBound(Ary)) = Ary
        strSql = "Select Distinct 齿数 From [人名-机数-齿数$] Where 姓名='" & Arr(0, k) & "'"
        Ary = Application.Index(Cn.Execute(strSql).getrows, 0)
        Sheets("列出每人在本月所使用的齿数").[A65536].End(3)(2) = Arr(0, k)
        Sheets("列出每人在本月所使用的齿数").[B65536].End(3)(2).Resize(1, UBound(Ary)) = Ary
    Next
    Cn.Close: Set Cn = Nothing
End Sub
-------------------------

Sub 制表()
Application.ScreenUpdating = False
    Sheets("人名-机数-齿数").Select

Application.Run "机号与型号.xls!CommandButton1_Click"

Application.ScreenUpdating = True
End Sub

请问如何调用???

 

--------------------------下面是全表,包括所有宏和真实数据

我的机子运行不了了,请高手把我的宏大修大修啊

谢谢了

 

XumSpiSV.rar (582.71 KB, 下载次数: 53)
发表于 2010-12-6 00:22 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2010-12-6 01:11 | 显示全部楼层
回复

使用道具 举报

发表于 2010-12-6 06:38 | 显示全部楼层

运行宏,必须打开有宏的文件,这样才能在内存里找到宏

楼主是否把有宏的“机号与型号.xls”文件打开了?

另请上传文件附件,包括 涉及这个宏的所有相关含有宏的文件

回复

使用道具 举报

发表于 2010-12-6 08:22 | 显示全部楼层

调用是在同一个文件中吗?

估计与你的过程是Private有关

回复

使用道具 举报

发表于 2010-12-6 09:17 | 显示全部楼层    本楼为最佳答案   

有一个Private Sub CommandButton1_Click()

把Private Sub CommandButton1_Click()

改成sub  ljy688()

然后那个鼠标移到按钮  右键指定宏 选择 ljy688

调用里面

call  ljy688

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-26 05:12 , Processed in 0.114588 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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