2016-08-22 1 views
0

사용자 폼을 만들었으며 명령 단추 중 하나가 데이터를 입력 할 수있는 다른 userform을 시작합니다. 그런 다음이 데이터는 워크 시트의 테이블에 추가되고 userform은 언로드되며 사용자는 원래 userform으로 리턴됩니다. 워크 시트에 데이터를 입력 할 때 오류가 발생합니다. 이 userform은 완벽하게 작동하지만 첫 번째 userform에서 시작될 때 오류가 발생합니다." 'Range'개체의 '값'메서드가 실패했으며 충돌이 우수합니다.

Private Sub CommandButton1_Click() 

    'check all fields are filled 
    Dim nextRow As Integer 
    Dim nextCell As String 

    If Len(Trim(ComboBox1.Value)) = 0 Then 
     MsgBox "All feilds must be filled" 
     Exit Sub 
    End If 

    If Len(Trim(TextBox1.Value)) = 0 Then 
     MsgBox "All feilds must be filled" 
     Exit Sub 
    End If 

    If Len(Trim(TextBox2.Value)) = 0 Then 
     MsgBox "All feilds must be filled" 
     Exit Sub 
    End If 

    'Check if supplier ID already exists 
    Dim FindString As String 
    Dim Rng As Range 

    FindString = TextBox1.Value 

     If Trim(FindString) <> "" Then 
      With Sheet4.Range("B:B") 
       Set Rng = .Find(What:=FindString, _ 
           After:=.Cells(.Cells.Count), _ 
           LookIn:=xlValues, _ 
           LookAt:=xlWhole, _ 
           SearchOrder:=xlByRows, _ 
           SearchDirection:=xlNext, _ 
           MatchCase:=False) 
       If Not Rng Is Nothing Then 
        Application.Goto Rng, False 
        MsgBox "Sorry Bro, " & FindString & " already exists!" 
        Exit Sub 
       Else 
        FindString = TextBox2 

         If Trim(FindString) <> "" Then 
          With Sheet4.Range("D:D") 
           Set Rng = .Find(What:=FindString, _ 
               After:=.Cells(.Cells.Count), _ 
               LookIn:=xlValues, _ 
               LookAt:=xlWhole, _ 
               SearchOrder:=xlByRows, _ 
               SearchDirection:=xlNext, _ 
               MatchCase:=False) 
           If Not Rng Is Nothing Then 
            Application.Goto Rng, False 
            MsgBox "Sorry Bro, the Ordering Details you entered:" & vbNewLine & _ 
              "'" & FindString & "'" & vbNewLine & _ 
              "Already exists in our Database!" & vbNewLine & _ 
              "U wanna check ur data?" 
            Exit Sub 
           End If 
          End With 
         End If 

       End If 
      End With 
     End If 



    'enter supplier ID into sheet 
    Sheet4.Activate 
    nextRow = ActiveSheet.Range("B2", Range("B2").End(xlDown)).Count 
    nextCell = Cells(nextRow + 2, 2).Activate 

    'this is where the error occurs 
    ActiveCell.Value = TextBox1.Value 
    ActiveCell.Offset(0, 1).Value = ComboBox1.Value 
    ActiveCell.Offset(0, 2).Value = TextBox2.Value 

    Sheet2.Activate 

    Unload Me 
    End Sub 

답변

0

개인적으로 "활성화"를 사용하지 않기 때문에 왜 작동하지 않는지 잘 모르겠습니다. 어쩌면 시도해 볼 수 있습니다.

'Previous code that worked fine 

    nextRow = ActiveSheet.Range("B2", Range("B2").End(xlDown)).Count 

    With ActiveSheet.Cells(nextRow + 2, 2) 
     .Value = TextBox1.Value 
     .Offset(0, 1).Value = ComboBox1.Value 
     .Offset(0, 2).Value = TextBox2.Value 
    End With 
    Sheet2.Activate 

    Unload Me 
    End Sub 

희망이 있습니다. (이것은 내 첫 번째 답변이므로 피드백에 매우 열려 있음을 유의하십시오.)

관련 문제