Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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 - Fatal编程技术网

创建新图纸时的vba创建命令按钮

创建新图纸时的vba创建命令按钮,vba,excel,Vba,Excel,当前我正在尝试在创建新工作表时创建命令按钮。然而,我面临着一个错误。错误438,对象不支持此属性或方法。这里需要一些帮助。干杯 Sub wdlsinflow() Dim r As Range, LstRw As Long, LstCo As Long Dim Obj As Object Dim Code As String LstRw = Sheets("sheet2").Cells.Find(What:="*", SearchOrder:=xlRows, S

当前我正在尝试在创建新工作表时创建命令按钮。然而,我面临着一个错误。错误438,对象不支持此属性或方法。这里需要一些帮助。干杯

Sub wdlsinflow()

    Dim r As Range, LstRw As Long, LstCo As Long
    Dim Obj As Object
    Dim Code As String

    LstRw = Sheets("sheet2").Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
    LstCo = Sheets("sheet2").Cells.Find(What:="*", SearchOrder:=xlColumns, SearchDirection:=xlPrevious, LookIn:=xlValues).Column

    Const myCompany As String = "RECEIVABLES - INFLOWS"
    Set r = Sheets("sheet2").Columns(1).Find(myCompany, , , 1)

    If Not r Is Nothing Then
        If Not IsSheetExists(myCompany) Then
            Sheets.Add(After:=Sheets(Sheets.Count)).Name = myCompany
        End If

        With Sheets(myCompany)
            .Cells.Clear
            Range(r, Sheets("sheet2").Cells(LstRw, LstCo)).Copy .Cells(1)

         Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
          Link:=False, DisplayAsIcon:=False, Left:=200, Top:=100, Width:=100, Height:=35)
             Obj.Name = "TestButton"
            'buttonn text
             ActiveSheet.OLEObjects(1).Object.Caption = "Test Button"



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

     With Sheets(myCompany).VBProject.VBComponents(Sheets(myCompany).Name).CodeModule
        .insertlines .CountOfLines + 1, Code
    End With

End Sub
这对我很有用:

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

这一错误发生在哪一行?在这一行“code”设置Obj=ActiveSheet.OLEObjects.AddClassType:=Forms.CommandButton.1,ulink:=False,DisplayAsIcon:=False,Left:=200,Top:=100,Width:=100,Height:=35Hi1感谢您的响应。我还是会出错。有一个弹出窗口,指示此时无法进入中断模式,然后出现相同的错误弹出窗口无法说明问题可能是什么-我的版本与您的版本相比简化了,但对我来说效果很好。Hafiz,您是使用F8步进还是F5运行?当我使用F8时,我得到了同样的错误。嗨!我正在使用steppingF8