使用FOR / NEXT和IF / THEN语句复制excel用户表单之间的文本框值

免责声明:我还是Excel VBA的新手。

我搜查了很多,但似乎无法find解决我的问题。

我试图通过使用几个用户表单和macros来简化数据录入过程,这将自动化大部分stream程。 从search这个网站我得到了很多帮助,但我认为是时候提交一个问题了。

基本上我想要这段代码做循环通过文本框,并检查他们的值在一个用户窗体(QAResults)对某些条件满足条件时,我希望它与另一个文本框在第二个用户窗体(NewEntryUserForm)并将一些文本框值从QAResults复制到NewEntryUserForm。 我认为问题在于如何尝试使用FOR和NEXT循环浏览用户窗体文本框。

我不确定我的解释是否有意义,但也许代码将帮助显示我正在尝试做什么。 我没有得到任何错误,但没有做我认为应该做的事情。 任何build议,将不胜感激。

Private Sub RetrieveLabComments_Click() Dim i As Integer Dim y As Integer Dim ufm As UserForm Dim qa As UserForm For i = 1 To 3 Set qa = QAResults If qa.Controls("TC" & i & "_DN_FQA").Value <> "" And _ qa.Controls("TC" & i & "_RLOG_FQA").Value <> "NA" And _ qa.Controls("TC" & i & "_RLOG_FQA").Value > qa.Controls("TC" & i & _ "_327_FQA").Value Then For y = 1 To 14 Set ufm = NewEntryUserForm Set qa = QAResults If qa.Controls("TC" & i & "_DN_FQA").Value = ufm.Controls("CN" _ & y).Value Then If ufm.Controls("DT" & y).Value = "LD" Then ufm.Controls("QAY" & y & "A").Value = "ILN" If ufm.Controls("DT " & y).Value = "FD" Then ufm.Controls("QAYF" & y & "B").Value = qa.Controls("TC" & i & "_RLOG_FQA").Value _ & ">" & qa.Controls("TC" & i & _ "_327_FQA").Value End If End If End If Next y End If Next i If MsgBox("Data retrieved!", vbOKOnly, "Incoming Message...") Then End If End Sub 

我看着使用For Each这个问题,但我不知道如何使它与我在我的用户userformtextboxes的数量。

在更多地了解我的代码之后,我意识到错误不在我的代码中,而是在textboxes的内容中。 换句话说,这是我的一个愚蠢的错误,代码工作得很好。 所以如果将来有人遇到这个问题,这段代码是一种通过嵌套的If Then语句loop遍历多个用户userforms特定textboxes的方法。 我相信有更好的方法来编写这个代码,但最终它为我工作。