excel - 将 Excel 用户表单数据发布到匹配条件的多行
问题描述
我在 Excel 中创建了一个带有复选框的用户表单,它将日期发布到数据库。日期发布在与放入用户表单的 ID(订单号)匹配的行中。
我使用“lastrow”的问题是它只发布到具有正确订单号的第一行,而我在 VBA 中非常有限的技能使我无法弄清楚我应该如何重新编写这段代码。
到目前为止,我设法将它放在一起,并且除了我的问题之外工作正常,它没有找到订单号的所有实例。
Private Sub CommandButton2_Click()
Dim LastRow As Long
Dim IDnum As String
Dim rngidnum As Range
Dim ws As Worksheet
Set ws = Worksheets("Data")
With ws
LastRow = .Cells(.Rows.Count, "AB").End(xlUp).Row
IDnum = TextBox1.Value
Set rngidnum = .Range("AB1:AB" & LastRow).Find(IDnum, .Range("AB" & LastRow))
End With
'Tjek om Ordrenummer findes
If rngidnum Is Nothing Then MsgBox "Order Number not found": Exit Sub
With rngidnum
If CheckBox1.Value = True Then
.Offset(0, 69).Value = Date
End If
If CheckBox2.Value = True Then
.Offset(0, 70).Value = Date
End If
If CheckBox3.Value = True Then
.Offset(0, 71).Value = Date
End If
If CheckBox4.Value = True Then
.Offset(0, 72).Value = Date
End If
If CheckBox5.Value = True Then
.Offset(0, 73).Value = Date
End If
If CheckBox6.Value = True Then
.Offset(0, 74).Value = Date
End If
If CheckBox7.Value = True Then
.Offset(0, 75).Value = Date
End If
End With
Unload UserForm1
End Sub
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
Private Sub Frame4_Click()
End Sub
Private Sub UserForm_Initialize()
TextBox1.Value = Sheets("Form").Range("C3").Value
End Sub
我希望有人可以帮助我弄清楚代码如何找到并将日期发布到所有相应的行。
提前致谢!
解决方案
您可以遍历复选框。
For n = 1 To 7
If Me.Controls("Checkbox" & n).Value = True Then
rngidnum.Offset(0, n + 68).Value = Date
End If
Next
推荐阅读
- asp.net - 由于 ASPX 重写,不会执行信号器/集线器
- java - 如何强制卸载 java 更新?
- javascript - Vue-tables-2 使用复选框选择多行,然后将行推送到新数组
- javascript - 我不能将 JSON 数据放入数组中
- c# - 对 INavigationService 类型的引用声称它是在 Prism 中定义的,但找不到它
- ms-access - 访问:计算 2 列中的出现次数
- android - onRoutingFailure:无密钥访问 Google Maps Platform 已弃用 请在所有 API 调用中使用 API 密钥以避免服务中断
- android-studio - Android Studio 中的 TarsosDSP
- javascript - 带有复选框的 Laravel 产品过滤器
- dialogflow-es - 如何处理与实体值不匹配的值?