在工作表加入button后,在工作表中写入button的事件响应代码如下:
Dim feedname as String
For num1 = 1 To feedworkbook.Worksheets.Count
feedname = ThisWorkbook.VBProject.VBComponents(num1).Name
With feedworkbook.VBProject.VBComponents(feedname).CodeModule
.InserLines 1, "Private Sub Btn002001_Click()"
.InserLines 2, "Call chancecheckbox"
.InserLines 3,"End Sub"
End With
Next
以上代码在feedname = "ThisWorkbook"时能顺利通过,但当feedname = "Sheet1"(即工作表codename)时就出现Microsoft Office Excel 遇到问题需要关闭
请问一下这是什么问题,怎样解决呢
打错了,feedworkbook改为ThisWorkbook
简单来说,就是用excel vba 在VBProject里的ThisWorkbook插入代码可以,但到了工作表中如(Sheet1)就出现问题了,我用的是Excel 2007
excel vba中工作表sheet写入button的事件响应代码
答案:3 悬赏:40 手机版
解决时间 2021-01-31 16:26
- 提问者网友:我是女神我骄傲
- 2021-01-31 04:13
最佳答案
- 五星知识达人网友:玩世
- 2021-01-31 04:34
程序不能运行的主要问题在于 InsertLines 方法中少了一个 t,仔细对照就知道了。
但另外的问题是你代码逻辑上有点问题,你想在所有工作表上写代码,如下修改就行:
For num1 = 1 To ThisWorkbook.Worksheets.Count
With ThisWorkbook.VBProject.VBComponents("sheet" & num1).CodeModule
.InsertLines 1, "Private Sub Btn002001_Click()"
.InsertLines 2, "Call chancecheckbox"
.InsertLines 3, "End Sub"
End With
Next
但另外的问题是你代码逻辑上有点问题,你想在所有工作表上写代码,如下修改就行:
For num1 = 1 To ThisWorkbook.Worksheets.Count
With ThisWorkbook.VBProject.VBComponents("sheet" & num1).CodeModule
.InsertLines 1, "Private Sub Btn002001_Click()"
.InsertLines 2, "Call chancecheckbox"
.InsertLines 3, "End Sub"
End With
Next
全部回答
- 1楼网友:雪起风沙痕
- 2021-01-31 07:20
试试这个:
Dim feedname As String
For num1 = 1 To ThisWorkbook.Worksheets.Count + 1
feedname = ThisWorkbook.VBProject.VBComponents(num1).Name
Set newmodule = ThisWorkbook.VBProject.VBComponents(feedname)
strCode = "Private Sub Btn002001_Click()"
strCode = strCode & Chr(10) & "Call chancecheckbox"
strCode = strCode & Chr(10) & "End Sub"
newmodule.CodeModule.AddFromString strCode
Next
原因:ThisWorkbook.Worksheets.Count只能返回工作表的数量,而VB对象多了一个ThisWorkbook,而且是第一个。
- 2楼网友:慢性怪人
- 2021-01-31 05:58
sub abc()
sheet2.visible = xlsheetvisible
sheet2.activate
sheet1.visible = xlsheethidden
end sub
sub abcd()
sheet1.visible = xlsheetvisible
sheet1.activate
sheet2.visible = xlsheethidden
end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯