【发布时间】:2020-04-27 23:10:38
【问题描述】:
我得到了
运行时错误“1004”应用程序定义或对象定义
每次我点击“全部刷新”时都会出错。当我点击 Debug 时,突出显示以下代码行。
Set FoundOrder = wsSale.Range("A:A").Find(What:=orderNum)
程序执行没有错误。唯一出现错误的情况是刷新表格以获取 UpToDate 信息。
这是我的代码。它是为“邮件”表上组合框的 onChange 事件编写的。
Private Sub CustName3_Change()
Dim wsOrderD As Worksheet: Set wsOrderD = Sheets("OrderDetails")
Dim wsSale As Worksheet: Set wsSale = Sheets("Sales")
Dim wsCust As Worksheet: Set wsCust = Sheets("CusTO")
Dim wsMail As Worksheet: Set wsMail = Sheets("Mailing")
Dim regEx As New RegExp
Dim orderNum As String: orderNum = CustName3.text
With regEx
.Pattern = "^[0-9 ]+$"
End With
Dim FoundOrder As Range: Set FoundOrder = wsSale.Range("A:A").Find(What:=orderNum)
If FoundOrder Is Nothing Then
MsgBox ("Order#" & orderNum & " Not Found")
CustName3.text = ""
Exit Sub
End If
wsMail.Range("AK10").Value = orderNum
If orderNum = "" Then
wsMail.Range("v8:v15").Value = ""
wsMail.Range("x3:af3").Value = "".
Else
If regEx.test(orderNum) Then
Dim custId As Long: custId = wsSale.Range("A:A").Find(What:=orderNum).Row
custId = wsSale.Cells(custId, "C")
Dim FoundCell As Long: FoundCell = wsCust.Range("A:A").Find(What:=custId).Row
Dim RowToFind As String: RowToFind = FoundCell
wsMail.Range("v8").Value = "¤Ø³ " & wsCust.Cells(RowToFind, "B")
wsMail.Range("v9").Value = wsCust.Cells(RowToFind, "C")
wsMail.Range("v10").Value = wsCust.Cells(RowToFind, "D")
wsMail.Range("v11").Value = wsCust.Cells(RowToFind, "E")
wsMail.Range("v12").Value = wsCust.Cells(RowToFind, "F")
wsMail.Range("v13").Value = "ÃËÑÊä»ÃɳÕÂì " & wsCust.Cells(RowToFind, "G")
wsMail.Range("v14").Value = "â·Ã " & wsCust.Cells(RowToFind, "H")
wsMail.Range("v15").Value = "â·Ã " & wsCust.Cells(RowToFind, "I")
Else
MsgBox ("Please type in 'Numbers' only!")
CustName3.text = ""
wsMail.Range("AK10").Value = ""
Exit Sub
End If
End If
End Sub
【问题讨论】:
-
抱歉,我现在已经编辑了帖子。
-
这段代码放在哪里?
-
此代码用于我在 onChange 事件的“邮件”表上的组合框。
-
在该行放置一个断点。当您刷新时,似乎 onchange 正在触发。组合框是否从表中选取值?
-
是的,组合框从“CusTO”表中读取值。