excel vba中工作表sheet写入button的事件响应代码 40
在工作表加入button后,在工作表中写入button的事件响应代码如下:DimfeednameasStringFornum1=1Tofeedworkbook.Works...
在工作表加入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 展开
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 展开
2个回答
展开全部
程序不能运行的主要问题在于 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
追问
按照这个代码编译就是出现microsoft Office Excel遇到问题需要关闭
我一开始也是这样编写的
展开全部
试试这个:
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,而且是第一个。
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,而且是第一个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |