excel - 如何在 If 语句中进行近似匹配?
问题描述
我创建了一个代码;但是,它可能无法正常工作。If 语句仅适用于绝对值。假设有人以小写形式输入了 ItemType,If 语句将无法获取该值,因此不会更新相应的工作表。我想消除工作簿中可能出现的错误或遗漏。
Sub test()
' ----------------------------------------------------------------- Data
Dim ws0 As Worksheet: Set ws0 = ThisWorkbook.Sheets("Data")
' ----------------------------------------------------------------- Mfg FG
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("ABCX Mfg FG")
' ----------------------------------------------------------------- Mfg RAW
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("ABCX Mfg RAW")
Dim ItemNumber As String
Dim ItemType As String
Dim Issues As String
Dim InventoryValue As String
ItemNumber = InputBox("Please enter Item Number", "Item Number", "Type here")
ItemType = InputBox("Please enter Item Type", "Item Type", "Type here")
Issues = InputBox("Please enter Number of Issues", "Issues", "Type here")
InventoryValue = InputBox("Please enter Inventory Value", "Inventory Value", "Type here")
'-------------------- Data
NextRow = ws0.Cells(ws0.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
ws0.Range("A" & NextRow).Value = ItemNumber
ws0.Range("F" & NextRow).Value = ItemType
ws0.Range("H" & NextRow).Value = Issues
ws0.Range("I" & NextRow).Value = InventoryValue
ws0.Range("A" & NextRow - 1 & ":I" & NextRow - 1).Copy
ws0.Range("A" & NextRow & ":I" & NextRow).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
Application.ScreenUpdating = True
'----------------- If statement
If ItemType = "Mfg FG" Then
ws1.Activate
Range("A13").Activate
ElseIf ItemType = "Mfg RAW" Then
ws2.Activate
Range("A13").Activate
End If
'-------------------- Loop
Do
If ActiveCell.Value = "" Then Exit Do
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell.Value = ItemNumber
ActiveCell.Offset(0, 1).Value = Issues
ActiveCell.Offset(0, 2).Value = InventoryValue
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
解决方案
将您的变量更改为大写 UPPER(ItemType) UPPER(Issues) UPPER(InventoryValue)
并将您的比较值设为大写,例如:UPPER("MFG FG")。那么他们用什么方式输入就无关紧要了。前面的评论者也在谈论关于 ACTIVECELL 的福音真理。使用它是在解决问题!
推荐阅读
- javascript - 使用 reduce 并导致错误提示“无法读取未定义的属性‘其他’”
- javascript - TypeORM OneToOne 关系级联删除不起作用
- python - ImportError:libcusolver.so.11:无法打开共享对象文件:没有这样的文件或目录
- powershell - 部署到 Azure Web App 后找不到 webjob?
- python - 如何使用 clearml 捕获记录器值
- animation - SwiftUI tvOS 按钮动画 - 如何停止 y 轴移动
- google-apps-script - 在谷歌表中运行脚本后,有没有办法自动下一个(到下一个项目)单元格数据验证下拉列表?
- vba - Q. 如何使用 VBA 转置每 n 行
- sql - 如何使用 BigQuery 获取当前 ID 的最大日期以及其他 ID?
- ethereum - 布朗尼已安装但无法识别