2017-05-08 115 views
0

我有一個用戶表單,我想根據用戶表單上的內容定位特定的單元格。一旦找到單元格,我需要將一個日期插入與上述需要定位的單元格相同行(不同列)上的相應單元格中。Excel用戶表單,定位單元格和插入日期

這裏是我有的代碼,但它似乎並沒有找到任何特定的單元格,而是在列E中插入一個日期,看起來像是一個隨機行。

Private Sub InsertRecordButton_Click() 
Dim Found As Range 
If Me.CloseDate.Value = "" Then 
    MsgBox "No Date is set", , "Missing Entry" 
Else 
    Set Found = 
Sheets("Colonies").Range("E:E").Find(What:=Me.Colonyid.Value, _ 
                LookIn:=xlValues, _ 
                LookAt:=xlWhole, _ 
                SearchOrder:=xlByRows, _ 
                SearchDirection:=xlNext,_ 
                MatchCase:=True) 
    If Found Is Nothing Then 
     MsgBox "No match for " & Me.Colonyid.Value, , "No Match Found" 
    Else 
     Found.Offset(3).Value = Me.CloseDate.Value 
    End If 

根據代碼,我試圖找到在Colonyid.Value中的用戶窗體上輸入的內容。一旦位於工作簿中,我需要在Colonyid.Value所在行的E列中輸入CloseDate.Value(自動填入今天的日期)。

我可以使用一個通用示例,但如果可能的話,我更喜歡使用我的代碼作爲起始塊。

回答

0

這對我的作品

Private Sub CommandButton1_Click() 
    Dim this As String 

    Dim rng As Range 
    Dim rcell As Range 

    If ISnUll(Me.TextBox1.Value) = False Then 
     this = Me.TextBox1.Value 
    ElseIf ISnUll(Me.TextBox1.Value) = true Then 
     MsgBox "Input is required for operation. Please enter a value" 
     Exit Sub 
    End if 

    Set rng = ThisWorkbook.Sheets("Sheet2").Range("E:E") 
    For Each rcell In rng.Cells 
    If rcell.Value <> vbNullString Then 
     If rcell.Value = this Then 
      rcell.Offset(0, 4).Value = Now() 
     End If 
    End If 
    Next rcell 
End Sub 
+0

感謝貢獻。當我使用我自己的文本框控件(而不是TextBox1)插入代碼時,我遇到了一個錯誤。 我收到錯誤:「無效的空使用」,它突出顯示: 'this = Me.Colonyid.Value' –

+0

只需將它包裝在IsNull函數中即可。像IF IsNull(Me.TextBox1.Value)= False那麼...... –

+0

好的建議。也許雖然我在上下文中需要這個: 'this = IsNull(Me.Colonyid.Value)= False'在消除空錯誤方面是可以接受的,但是If在哪裏?我收到編譯錯誤。 –