簡體   English   中英

VBA中的Excel錯誤“運行時錯誤'424':必需的對象

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

我是VBA和編碼方面的新手。 我目前正在嘗試將日期從Multitab轉移到工作簿,並不斷收到運行時錯誤424:所需的對象。 請幫忙

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

我在下面提出了一些建議,以便您減少重復的代碼。 我添加了一個數組,因此您不必每次都重新鍵入所有textbox(Assuming)值。 希望對您有所幫助。 我不得不猜測,如果需要調整,請告訴我! 它可能會運行錯誤,原因是我也不確定所引用的活動單元格。 如果您讓我知道,我可以解決。

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

在用戶表單代碼中:

 ' 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

工作表或模塊中的代碼:

 Sub Open_Userform
     UserForm1.Show False
 End sub

祝你有美好的一天!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM