用范围内的值更新用户窗体
我目前有一张表格,用于跟踪我的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