【发布时间】:2021-01-23 19:13:58
【问题描述】:
我正在尝试将在一个工作表上输入的一些数据保存到我在另一个工作表上的销售表中。
除了与数据验证下拉菜单相关的一个小问题之外,以下代码运行良好。
当我在主工作表上输入数据并从同一个主工作表或工作簿中的任何其他工作表运行此代码时,数据将保存到我的销售表中,但下拉列表未插入到列中“ P”。
如果我从包含 Sales 表的工作表中运行此代码,一切都会按预期运行。
这是我的代码:
Public Function updateSalesInfo(wbk As Workbook, strFileName As String)
Dim lngRow As Long
Dim wks As Worksheet
Dim tableListObject As ListObject
Dim tableObjectRow As ListRow
Set wks = wbk.Sheets("Sales")
Set tableListObject = wks.ListObjects("Sales")
Set tableObjectRow = tableListObject.ListRows.Add
With wks
lngRow = .Range("B65536").End(xlUp).Row
With .Range("B" & lngRow)
.Value = Range("_newInvoice").Value
.Offset(, 1).Value = Format(Now(), "mmmm d, yyyy")
.Offset(, 2).Value = Range("rngCustID").Value
.Offset(, 3).Value = Range("rngCustName").Value
.Offset(, 9).Value = Range("_invoiceDueDate").Value
.Offset(, 11).Value = "=IF(ISBLANK(B" & lngRow & "),"""",L" & lngRow & "-J" & lngRow & ")"
.Offset(, 12).Value = "=IF(AND(K" & lngRow & "<=TODAY(),M" & lngRow & "<0),""Yes by ""&(TODAY()-K" & lngRow & ")&"" Days"","""")"
.Offset(, 13).Value = Range("rngLoginUserName").Value
.Offset(, 14).Value = "Draft"
End With
.Hyperlinks.Add Anchor:=.Range("B" & lngRow), Address:=strFileName, ScreenTip:="Click to open a file"
With wks.Range("P" & lngRow).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Settings!" & Range("rngInvoiceStatus").Address
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End With
Set wks = Nothing
End Function
关于如何以正确的方式做的任何建议?
提前谢谢你
【问题讨论】: