Vba 如果在A:A中找到TextBox1.Text,请将TextBox2.Text添加到该行后面的单元格中

Vba 如果在A:A中找到TextBox1.Text,请将TextBox2.Text添加到该行后面的单元格中,vba,Vba,我有一个用于输入翻译的用户表单。有用于标题(txtTitle)、要翻译的文本(txtToTranslate)和已翻译文本(txtTranslation)的文本框,以及用于选择语言(cboLanguage)的组合框 当前,每次用户单击submit时,代码都会创建一行新的数据。 我想修改以下功能: 1单击提交,检查A:A中是否已存在TXTTILE 2a如果txtTitle不存在,则创建新行(当前功能) 2b如果存在txtTitle,则将txtTranslation添加到具有txtTitle的行中,而

我有一个用于输入翻译的用户表单。有用于标题(txtTitle)、要翻译的文本(txtToTranslate)和已翻译文本(txtTranslation)的文本框,以及用于选择语言(cboLanguage)的组合框

当前,每次用户单击submit时,代码都会创建一行新的数据。 我想修改以下功能:

1单击提交,检查A:A中是否已存在TXTTILE

2a如果txtTitle不存在,则创建新行(当前功能)

2b如果存在txtTitle,则将txtTranslation添加到具有txtTitle的行中,而不是“NextRow”

Private Sub btnSubmit\u Click()
作为字符串的暗FindString
变暗Rng As范围
FindString=“*”&txtTitle
如果修剪(FindString)和“*”,则
带图纸(“输出”)。范围(“A:A”)
Set Rng=.Find(What:=FindString_
之后:=.Cells(.Cells.Count)_
LookIn:=xlValues_
看:=xlother_
搜索顺序:=xlByRows_
SearchDirection:=xlNext_
匹配案例:=假)
如果不是,那么Rng什么都不是
????                        
其他的
工作表(“输出”)。激活
NextRow=Application.WorksheetFunction.CountA(范围(“A:A”))+1
单元格(NextRow,1)=txtTitle.Text
单元格(NextRow,2)=txtToTranslate.Text
如果cboLanguage=“fr fr”,则单元格(NextRow,3)=txtTranslation.Text
如果cboLanguage=“it”,则单元格(NextRow,4)=txtTranslation.Text
如果cboLanguage=“de de”,则单元格(NextRow,5)=txtTranslation.Text
卸载frmNewTranslation
如果结束
以
如果结束
端接头

以下是我的做法:

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

等等。

我不认为这会问一个特定的问题,而是要求我们为您编写一些代码。请你重新措辞好吗?我只是想知道如何做2b“如果存在txtTitle,将txtTranslation添加到带有txtTitle的行中,而不是“NextRow”“我是一个初学者,除了给出整个上下文之外,我真的不知道如何问这个问题。我还删除了提示覆盖的问题。我将在其他地方对此进行研究。
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
rng.value = 'whatever
rng.offset(0, 1).value = 'next column whatever
rng.offset(0, 2).value = 'third column whatever