-1

メンバーをExcelに追加できるVBAのシステムをプログラムしようとしています。現時点では非常に単純で、なぜこのエラーが発生するのか理解できません...データベースに他のエンティティを追加するために同様のサブと関数を作成しましたが、問題なく機能しました...新しい「メンバー」を追加してみてください。このエラーメッセージ「アプリケーション定義またはオブジェクト定義エラー」が表示されます。ここにコードがあります、そして提案を提供することができる誰にでも前もって感謝します。

Sub Member_Sign_Up(MemberId As String)
Dim FirstName As String
Dim LastName As String
Dim PCode As String
Dim NumberOnLoan As String
Dim NextRM As Integer

With Range("A1:F1").Font
    .Bold = True
    End With

Worksheets("Members").Cells(1, 1) = "First Name"            'Set up the headings for the member fields
Worksheets("Members").Cells(1, 2) = "Last Name"             'Also set the font to bold
Worksheets("Members").Cells(1, 3) = "Post Code"
Worksheets("Members").Cells(1, 4) = "Number of Books on Loan"
Worksheets("Members").Cells(1, 5) = "Member ID"
Worksheets("Members").Cells(1, 6) = "Number of Members"

NextRM = Worksheets("Members").Cells(2, 6) + 2              'NextR is the next available row for new data (using the number of different Members to determine when the next free row is)

FirstName = InputBox("First Name?")
LastName = InputBox("Last Name?")
PCode = InputBox("Your Postcode (without spaces)?")

Worksheets("Members").Cells(2, 6) = Worksheets("Members").Cells(2, 6) + 1  'update the Members sheet "number of Members"

Worksheets("Members").Cells(NextRB, 1) = FirstName
Worksheets("Members").Cells(NextRB, 2) = LastName                  'update the Members sheet
Worksheets("Members").Cells(NextRB, 3) = PCode
Worksheets("Members").Cells(NextRB, 5) = MemberId

End Sub

Sub Attempt_Sign_Up()
Dim i As Integer
Dim MemberId As String

MemberId = InputBox("Enter a prefered member ID, it must contain at least five letters and two numbers.")
If Not Check_Member_Exists(MemberId) Then 'And Check_MemberId_Valid(MemberId)
Member_Sign_Up (MemberId)
Else
    MsgBox ("Member with ID " & MemberId & " is already taken or is not valid")
End If

End Sub

Function Check_Member_Exists(MemberId As String) As Boolean

Dim i As Integer
Dim Member_Found As Boolean

Member_Found = False                                      'Set Member_Found to false so that if it becomes true we know a member with that ID already exists
i = 0
Do                                                        'Look through all the cells in Books worksheet with i as the index
    i = i + 1
    If Worksheets("Members").Cells(i, 6) = MemberId Then
        Member_Found = True                                 'Check to see if we've found the ISBN
    End If
Loop Until Member_Found Or i = Worksheets("Members").Cells(2, 6) + 2
Check_Member_Exists = Member_Found


End Function
4

1 に答える 1

3

変数の名前を、メンバーシート(など)を更新するときに呼び出すように変更するNextRMと、うまくいきます。NextRBWorksheets("Members").Cells(NextRB, 1) = FirstName

于 2012-11-22T16:57:39.327 に答える