Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA创建新工作簿并创建包含代码的命令按钮_Vba_Excel_Commandbutton - Fatal编程技术网

VBA创建新工作簿并创建包含代码的命令按钮

VBA创建新工作簿并创建包含代码的命令按钮,vba,excel,commandbutton,Vba,Excel,Commandbutton,早上好 我尝试使用Excel文件中的命令按钮自动执行以下操作: 创建新工作簿(新excel文件) 在其中生成一个命令按钮 将带有代码的命令按钮(已编程,但未将现有宏与其关联,它应已包含自己的代码) 所有这些操作都应遵循为第一个命令按钮编写的说明 创建新文档没有问题,但是在已经编程的文档中生成命令按钮对我来说很难 我是vba的初学者 非常感谢我发现这个可以让你开始。它将创建一个带有命令按钮的新图纸。你必须做出一些改变,但这是一个很好的起点。这是蒂姆·威廉姆斯在这个网站上发的。蒂姆是个经验丰富的

早上好

我尝试使用Excel文件中的命令按钮自动执行以下操作:

  • 创建新工作簿(新excel文件)
  • 在其中生成一个命令按钮
  • 将带有代码的命令按钮(已编程,但未将现有宏与其关联,它应已包含自己的代码)
所有这些操作都应遵循为第一个命令按钮编写的说明

创建新文档没有问题,但是在已经编程的文档中生成命令按钮对我来说很难

我是vba的初学者


非常感谢

我发现这个可以让你开始。它将创建一个带有命令按钮的新图纸。你必须做出一些改变,但这是一个很好的起点。这是蒂姆·威廉姆斯在这个网站上发的。蒂姆是个经验丰富的程序员

Sub wdlsinflow()

Dim sht As Worksheet
Dim Obj As Object
Dim Code As String
Dim cmod

Set sht = Sheets.Add(After:=Sheets(Sheets.Count))

With sht
    .Name = "blah"
    .Cells.Clear


    Set Obj = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
                           Link:=False, DisplayAsIcon:=False, Left:=200, _
                           Top:=100, Width:=100, Height:=35)

    Obj.Name = "ButtonTest" '<< name must match code below...
    Obj.Object.Caption = "Test Button"

    Code = "Sub ButtonTest_Click()" & vbCrLf & _
            "   Call Tester" & vbCrLf & _
            "End Sub"

    With .Parent.VBProject.VBComponents(.CodeName).CodeModule
        .insertlines .CountOfLines + 1, Code
    End With
End With

End Sub
Sub-wdlsinflow()
将sht变暗为工作表
作为对象的Dim Obj
将代码设置为字符串
暗cmod
设置sht=Sheets.Add(之后:=Sheets(Sheets.Count))
用短发
.Name=“诸如此类”
.细胞,清除
Set Obj=.OLEObjects.Add(类类型:=“Forms.CommandButton.1”_
链接:=假,显示图标:=假,左:=200_
顶部=100,宽度=100,高度=35)

Obj.Name=“ButtonTest”'你能告诉我们你到目前为止做了什么吗?我没有做任何关于第2点和第3点的事情,因为我不知道如何做可能重复的感谢米奇。但是现在,我应该在哪里写下“按钮测试者”要做的动作?我是否应该创建一个新的子对象,是否应该将其写入代码字符串中。。。不知道。。。感谢您添加一个模块,然后像下面这样添加一个子测试仪()
,然后按照您希望按钮执行的任何代码进行操作。当然,您可以根据自己的情况更改任何名称。