【发布时间】:2026-01-20 23:40:01
【问题描述】:
我不是一个经验丰富的程序员,所以请原谅我的无知。我编写了一段代码,它循环浏览来自在线请求表单的响应,其中结果保存到电子表格中。
我有几个问题,第一个是行计数不包括第一行,如果我在结果中加 1(这是正确的,很好!!!)
当我运行表单时,它会根据条件Not x = "Yes" 显示第一条记录,但是当我单击下一步时,它将循环到下一行并停止。如果我将 1 添加到 Row Count,它会转到最后一行。
Private Sub UserForm_Initialize()
Call SetVariables
Dim Count As Long
Dim ReqRow As Long
For Count = 2 To LRow
If Not xRequest.Range("AF" & Count).Value = "Yes" Then
Me.TB_Requester = xRequest.Range("F" & Count).Value
Me.TB_Email = xRequest.Range("D" & Count)
ReqRow = Count
Exit For
End If
Next Count
'These are just recording the Row and Count
'Me.TB_PropAction = ReqRow
'Me.TB_UsageScore = LRow
End Sub
Private Sub CmdB_Next_Click()
Call SetVariables
Dim Count As Long
Dim Record As Long
With xRequest
If Record = 0 Then Record = 1
For Count = (Record + 1) To LRow Step 1
If Not .Range("AF" & Count).Value = "Yes" Then
Me.TB_Requester = .Range("F" & Count).Value
Me.TB_Email = .Range("D" & Count)
ReqRow = Count
End If
Next Count
If (Count - 1) = LRow Then
MsgBox "End of Component Submissions"
End If
End With
Me.TB_PropAction = ReqRow
End Sub
谁能告诉我哪里出错了,我在电子表格中只有 6 行,它应该循环通过 3 个请求,但无论我做什么,我只得到 2 个(第 3 行和第 4 行或第 3 行和第 6 行)
【问题讨论】:
-
LRow 未声明也未定义。它应该是什么?它是一个公共变量吗?
-
是的,LRow 已被声明为公开。它用于许多 Subs 或 Functions
-
如何确定?它的值是否正确?您可以发布数据样本吗?
-
这是 LRow 的代码 - LRow = xRequest.Cells(Rows.Count, 1).End(xlUp).Row
标签: excel vba for-loop userform commandbutton