免责声明:我还是Excel VBA的新手。
我经常搜索,但似乎无法找到解决问题的方法。
我尝试使用一些用户表单和宏来简化数据输入过程,这些用户表单和宏将自动执行大部分过程。我只是在搜索这个网站时得到了很多帮助,但我认为现在是时候提交一个问题。
基本上我希望这段代码要做的是循环文本框并根据某些条件在一个userform(QAResults)中检查它们的值,当条件满足时我希望它将该文本框与第二个userform中的另一个文本框进行比较(NewEntryUserForm)并将一些文本框值从QAResults复制到NewEntryUserForm。我认为问题在于我如何尝试使用FOR和NEXT循环访问用户表单文本框。
我不确定我的解释是否有意义但是代码可能有助于展示我尝试做的事情。我没有收到任何错误,但它没有做我认为它应该做的事情。任何建议将不胜感激。
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
答案 0 :(得分:0)
我查看了使用For Each
解决此问题,但我无法弄清楚如何使用我textboxes
中userform
的{{1}}个数。
在弄乱了我的代码后,我意识到错误不在我的代码中,而是在textboxes
的内容中。换句话说,这是我的一个愚蠢的错误,代码工作正常。因此,如果将来有人遇到此问题,则此代码可以通过嵌套loop
语句在多个textboxes
上通过特定userforms
进行If Then
。我确信有更好的方法来编写这段代码,但最终它对我有用。