2013-07-17 54 views
-1

我有用於輸入翻譯的用戶窗體。有標題文本框(txtTitle),文本翻譯(txtToTranslate)和翻譯文本(txtTranslation)和一個組合框來選擇語言(cboLanguage)。如果在A:A中找到TextBox1.Text,請將TextBox2.Text添加到該行中的稍後單元格中

該代碼當前每次用戶單擊提交時都會創建一行新的數據。 我想修改的功能如下:

1點擊提交按鈕,檢查是否txtTitle在一個已經存在:一個

2A如果txtTitle不存在,創建新行(當前功能)

2B如果txtTitle存在,加txtTranslation與txtTitle行,而不是「NextRow」

Private Sub btnSubmit_Click() 

    Dim FindString As String 
    Dim Rng As Range 

    FindString = "*" & txtTitle 

    If Trim(FindString) & "*" <> "" Then 
     With Sheets("output").Range("A:A") 
      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 
       ????       
      Else 
       Sheets("output").Activate 
       NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1 
        Cells(NextRow, 1) = txtTitle.Text 
        Cells(NextRow, 2) = txtToTranslate.Text      
         If cboLanguage = "fr-FR" Then Cells(NextRow, 3) = txtTranslation.Text 
         If cboLanguage = "it-IT" Then Cells(NextRow, 4) = txtTranslation.Text 
         If cboLanguage = "de-DE" Then Cells(NextRow, 5) = txtTranslation.Text   
       Unload frmNewTranslation 
      End If 
     End With 
    End If 
    End Sub 
+0

我並不是說這個問題要求我們爲你寫一些代碼。你能改說嗎? – Katstevens

+0

我只是試圖找出如何做2b「如果txtTitle存在,添加txtTranslation與txtTitle行,而不是」NextRow「。我是一個初學者,並不真正知道如何問這個問題其他除了給出整個上下文之外,我還可以問這個問題嗎? – halcyon27

+0

我也刪除了關於提示覆蓋的問題,我會在其他地方進行研究。 – halcyon27

回答

1

這是我會怎麼做呢:

Dim rng as Range 
Dim FindString as string 

FindString = "*" & Trim(txtTitle) & "*" 'this will match any occurance of txtTitle in a target cell 

Set rng = Range("A1") 'set starting range cell 

While rng.value <> "" 

    If rng.Value Like FindString 

     'your code to update the current row here 

     Exit Sub 
    End If 

    Set rng = rng.Offset(1, 0) 'offset the cell down one 

Wend 

'your code to create the new row here. rng will be positioned at the next empty cell 

這有幫助嗎?簡要說明發生了什麼事情(以幫助你的方式):

首先,我們將範圍變量設置爲要從中搜索的最頂端的單元格(本例中爲A1)。然後我們輸入一個循環:如果檢查rng的值是否與FindString匹配,並且如果是,則可以將代碼放在那裏以執行找到匹配時需要執行的任何操作。 如果在該行中找不到匹配If塊不會執行,並且rng被設置爲它下面的單元(將我們拖下來),然後循環重複。循環將一直運行,直到找到的第一個空白單元格,因此它假定列中沒有空格。此時找到一個空白單元格,循環結束,代碼繼續。然而,rng設置爲空白單元格,所以你可以創建一個新的行,像這樣:

rng.value = 'whatever 
rng.offset(0, 1).value = 'next column whatever 
rng.offset(0, 2).value = 'third column whatever 

等。

相關問題