简体   繁体   English

VBA中的Excel错误“运行时错误'424':必需的对象

[英]Excel Error in VBA " Run-time error '424': Object required

I am new to VBA and coding in general. 我是VBA和编码方面的新手。 I am currently trying to transfer date from a multitab over to a workbook and keep getting the run time error 424: object required. 我目前正在尝试将日期从Multitab转移到工作簿,并不断收到运行时错误424:所需的对象。 Please help 请帮忙

Dim sheetname As String

Private Sub CommandButton2_Click()
Dim LastRow As Long
Dim sheetname As String
Select Case MultiPage1.Value
  Case 0`sheetname = "Hannah"
    Sheets(sheetname).Select
    LastRow = Range("A" & Rows.Count).End(xlUp).Row
    Range("A1").Select`enter code here`
    Selection.End(xlDown).Offset(1, 0).Select
    ActiveCell.Value = Date
    ActiveCell.Offset(0, 1).Value = Me.RequestorHR.Value
    ActiveCell.Offset(0, 2).Value = Me.CaseHR.Value
    ActiveCell.Offset(0, 3).Value = Me.TypeHR.Value
    ActiveCell.Offset(0, 4).Value = Me.UrgencyHR.Value
    ActiveCell.Offset(0, 5).Value = Me.ReasonsHR.Value
    ActiveCell.Offset(0, 6).Value = Me.DeadlineHR.Value
    Clear_Click
  Case 1
    sheetname = "John"
    Sheets(sheetname).Select
    LastRow = Range("A" & Rows.Count).End(xlUp).Row
    Range("A1").Select
    Selection.End(xlDown).Offset(1, 0).Select
    ActiveCell.Value = Date
    ActiveCell.Offset(0, 1).Value = Me.RequestorJM.Value
    ActiveCell.Offset(0, 2).Value = Me.CaseJM.Value
    ActiveCell.Offset(0, 3).Value = Me.TypeJM.Value
    ActiveCell.Offset(0, 4).Value = Me.UrgencyJM.Value
    ActiveCell.Offset(0, 5).Value = Me.ReasonsJM.Value
    ActiveCell.Offset(0, 6).Value = Me.DeadlineJM.Value
    Clear_Click

I made some suggestions below so you have less repeating code. 我在下面提出了一些建议,以便您减少重复的代码。 I added an array so you do not have to keep retyping all your textbox(Assuming) values each time. 我添加了一个数组,因此您不必每次都重新键入所有textbox(Assuming)值。 I hope that helps. 希望对您有所帮助。 I had to guess so if it needs to be tweaked let me know bud! 我不得不猜测,如果需要调整,请告诉我! It may run an error cause i was not sure of the active cell your referring too. 它可能会运行错误,原因是我也不确定所引用的活动单元格。 If you let me know, i can fix it. 如果您让我知道,我可以解决。

Private Sub CommandButton2_Click()
    Dim LastRow As Long
    Dim sheetname As String
    Dim strList() As Variant
    Dim i As Integer

    strList = Array(, Me.RequestorHR.Value, Me.CaseHR.Value, Me.TypeHR.Value, _
                    Me.UrgencyHR.Value, Me.ReasonsHR.Value, Me.DeadlineHR.Value)

    Select Case MultiPage1.Value

    Case 0

    sheetname = "Hannah"

    Sheets(sheetname).Select

    LastRow = Sheets(sheetname).Range("A" & Rows.Count).End(xlUp).Row

    Sheets(sheetname).Range("A1").End(xlDown).Offset(1, 0).Value = Date

    For i = 1 To 6
        With Sheets(sheetname)
            .ActiveCell.Offset(0, i).Value = strList(i)
        End With
    Next i

    Clear_Click

    Case 1

    sheetname = "John"

    Sheets(sheetname).Select

    LastRow = Sheets(sheetname).Range("A" & Rows.Count).End(xlUp).Row

    Sheets(sheetname).Range("A1").End(xlDown).Offset(1, 0).Value = Date

    For i = 1 To 6
        With Sheets(sheetname)
            .ActiveCell.Offset(0, i).Value = strList(i)
        End With
    Next i

    Clear_Click

In Userform Code: 在用户表单代码中:

 ' StartUpPosition > Manual
 Private Sub UserForm_Initialize()
 With Me
    .Top = Int(((Application.Height / 2) + Application.Top) - (.Height / 2))
    .Left = Int(((Application.Width / 2) + Application.Left) - (.Width / 2))
 End With
End sub

Code in worksheet or Module: 工作表或模块中的代码:

 Sub Open_Userform
     UserForm1.Show False
 End sub

Have a great day! 祝你有美好的一天!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM