use*_*889 2 excel vba excel-vba
Sub Sales_Summary_Macro()
Dim strMake, strModel, strCount As String
Dim makeLoc, modelLoc, countLoc As Integer
strMake = Application.InputBox("Make")
strModel = Application.InputBox("Model")
strCount = Application.InputBox("Count")
If strMake <> False Then
Debug.Print strMake
Debug.Print strModel
Debug.Print strCount
makeLoc = WorksheetFunction.Match(strMake, Range("A1:A10"), 0)
Debug.Print makeLoc
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
我只想在三个不同的变量上获取用户的字符串输入,并找到包含每个变量的列。我已经尝试过Application.Match()和Match(),但似乎都没有用。
技术不全面,不会发布代码。但是,三件事:
第一,请确保您的范围始终完全合格。例如,Range("A1:A10")还远远不够。您应指定此文件应位于哪张纸上。如果您从另一个工作表调用此宏,它将给您错误的结果或引发错误。
二,不做太多细节:
Application.Match如果找不到匹配项,则返回错误值。可以使用来处理IsError,这是simoco在他的回答中所做的。WorksheetFunction.Match 抛出一个1004错误,当它没有找到一个错误。这与返回值不同。因此,这(很难)处理。最佳做法是始终使用第一个。
三,VBE中的即时窗口是您最好的朋友。?Application.Match("FindMe", [A1:A10], 0)窗口中的简单窗口可以帮助您检查公式是否得出相似的预期结果。

如上面的屏幕快照所示,找不到字符串,并且返回错误值。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
4988 次 |
| 最近记录: |