【发布时间】:2017-11-02 00:18:06
【问题描述】:
系统说明:我有一个电子表格,其中有一个名为 RentLogs 的表格(Sheet2,Renting Logs)。当您单击一个按钮时,会出现一个用户表单,用户选择返回项目的日期并点击“确定”。然后表单在表格中搜索项目的 ID,并在 签入日期 列中记录签入日期。
问题:
1) 我的 VBA 代码(如下)只能在整个工作表上找到项目 ID,我如何在表格中找到它的位置,以便可以移动表格而不用担心静态列值?
2) 如何让 VBA 将其放入(项目 ID 行,签入日期列)?
Private Sub checkout_cmdbutton_Click()
Dim ws As Worksheet
Set ws = Worksheets("Renting Logs")
Const WHAT_TO_FIND As Integer = 200
Set FoundCell = ws.Range("RentLog").Find(What:=WHAT_TO_FIND, SearchOrder:=xlRows, SearchDirection:=xlNext, LookIn:=xlValues)
If Not FoundCell Is Nothing Then
MsgBox (WHAT_TO_FIND & " found in (" & FoundCell.Row & "," & FoundCell.Column & ")")
Else
MsgBox (WHAT_TO_FIND & " not found in RentLog")
Exit Sub
End If
'copy the check in date to the table
ws.Cells(FoundCell.Row, ws.Range("RentLog").Column).Value = Me.checkin_datepicker.Value
'clear userform
Me.checkin_datepicker.Value = Date
'close userform
Unload Me End Sub
我的尝试:我知道问题出在我的搜索算法上,但我不熟悉 VBA,也不知道对象的所有属性。用户表单完美运行,所以没有问题。
【问题讨论】:
-
ws.Cells(FoundCell.Row, ws.Range("RentLog").Column).Value = Me.checkin_datepicker.Value看起来您的列使用了错误的索引,不应该是Check In Date吗?也许我不明白这里的问题......