【发布时间】:2022-10-08 04:47:32
【问题描述】:
此代码的目标是接受用户输入的数字 (New_Project_Number),然后读取一个列表(A3 列到该列的最后一行)比较数字并检查重复项。然后将 New_Project_Number 粘贴到“A”列的最后一行。
Sub Project_Number_Standerdization()
Dim New_Project_Number As Variant
Dim Used_Project_Number As Variant
Dim Last_Pn As Integer 'this is a looping variable for the last row in column a
Dim wss As Worksheet
Dim ii As Integer
New_Project_Number = Application.InputBox("What is the New Project Number?", Type:=1)
Set wss = ActiveSheet
Last_Pn = wss.Range("A3").End(xlDown)
For ii = 1 To Last_Pn
Used_Project_Number = wss.Range("A3").Offset(ii - 1, 0).Value
If New_Project_Number = Used_Project_Number _
Then MsgBox ("That project number is being used please choose a different one.") _
Next ii
End Sub
但是,这会检查是否有欺骗行为,但不会将代码发布到底部。如果我添加
Else wss.range("A3").end(Xldown).offset(1,0)
在 then 语句之后和之前
Next ii
然后出现错误信息
“否则没有 if 语句”
如何检查所有使用的项目编号,然后在最后一个单元格上写下新项目编号。现在这只检查是否有欺骗性。
【问题讨论】:
-
这个link 可能有用。
-
因为在
MsgBox语句的末尾有一个续行符号_,VBA 认为Next行是它的一部分。删除_,你应该会很好。 -
此外,您真的很想阅读多行
If...End If语法。 -
谢谢大家的这些建议。多么棒的社区!