用范围内的值更新用户窗体

我目前有一张表格,用于跟踪我的build筑物中的人员何时收到包裹抵达通知,以及有关该包裹的信息。 我有一个“发送提醒”button,它显示了用户窗体,它是通过查看表单并确定哪些程序包已经等待了两天以上,然后用表单中的相应数据为用户填写几个字段(我还没有任何声望,所以不能张贴图片)。

第一个文本框是电子邮件,第二个是主题,第三个是消息。 有一个Nextbutton只是导致表单再次初始化,所以我希望它只是查找下一个已经等待的包,如果没有find,那么表单closures。

问题是当我单击button来显示窗体时,电子邮件框和邮件框都显示空白,虽然主题框是好的。

Private Sub UserForm_Initialize() Dim checkRange As Range Dim rCell As Range Dim k As Integer On Error Resume Next k = 0 Sheets(1).Activate checkRange = ActiveSheet.Range("D3", "D100") For Each rCell In checkRange.Cells If rCell.Value >= 2 Then Email.Value = Cells(rCell.Row, 1).Value Subject.Value = "Package Reminder" Message.Value = "This is a reminder that you have a package from " & _ Cells(rCell.Row, 2).Value & _ " waiting for you in the machine shop." k = 1 Cells(rCell.Row, 3).Value = Date Exit For End If Next rCell If k = 0 Then Unload Me MsgBox ("All reminders sent!") End If End Sub 

编辑:

我必须失明; 我不知道这行代码在做什么!

 checkRange = ActiveSheet.Range("D3", "D100") 

这应该是:

 checkRange = ActiveSheet.Range("D3:D100") 

希望这可以帮助; 对不起,要慢! 🙂

原版的:

我试着写你描述的代码来看看它是如何工作的。

这是我想出来的; 我希望这能以某种方式帮助你!

我不知道你的代码有什么问题,因为这几乎是相同的事情,它按预期工作:

在这里输入图像说明

 Private Sub UserForm_Initialize() Dim rCell Dim foundPackage foundPackage = False For Each rCell In Sheets("Sheet1").Range("D2:D12") If rCell.Value >= 2 And Sheets("Sheet1").Cells(rCell.Row, 3).Value = "" Then 'Added AND so it goes to the next one after a date is set Email.Value = Sheets("Sheet1").Cells(rCell.Row, 1).Value Subject.Value = "Package Reminder" Message.Value = "This is a reminder that you have a package from " & _ Sheets("Sheet1").Cells(rCell.Row, 2).Value & " waiting in the machine shop." Sheets("Sheet1").Cells(rCell.Row, 3).Value = Date 'This will set the date on the cell - I believe this is as intended foundPackage = True Exit For End If Next rCell If foundPackage = False Then Unload Me MsgBox ("All reminders sent!") End If End Sub 

在这里输入图像说明