是否可以使用VBA来捕获和使用文本字符串中的第一个数字,如果没有数字,那么只使用1?
我正在使用的代码是查看列AC并查找特定文本,然后使用该文本的前两个字母和最右边的数字并替换N列中的相应行.
我现在尝试做的是考虑文本中没有数字(应该= 1),或者存在但是它在中间但位置移动(因此mid语句不起作用).如果这是可能的任何建议或推进正确的方向将不胜感激.
Dim wsl As Worksheet
Dim LR As Long, i As Long
mydate = Format(Date, "YYMMDD")
Set wsl = LagoDLFile.Sheets("cid_SeventhAvenue_" & mydate & "")
LR = wsl.Range("AC" & wsl.Rows.Count).End(xlUp).Row
For i = 2 To LR
If wsl.Range("AC" & i) Like "*EOC*" Then
wsl.Range("N" & i) = "EOC"
ElseIf wsl.Range("N" & i) Like "700" Then
wsl.Range("N" & i) = "CHK"
ElseIf wsl.Range("AC" & i) Like "*CTOB*" Then
wsl.Range("N" & i) = "COF"
ElseIf wsl.Range("AC" & i) Like "EXOBC*" …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置一个简单的解决方案来突出显示日期大于今天日期的单元格.我目前拥有以下内容:
Sub Test()
Dim lrow As Long
lrow = Cells(Rows.Count, 1).End(xlUp).Row
Columns("H:H").EntireColumn.AutoFit
If Range("H2:H" & lrow).Value > Date Then Cell.Interior.Color = vbYellow
End Sub
Run Code Online (Sandbox Code Playgroud)
我不断得到"类型不匹配"错误,但列(H)格式化为日期,所以我不确定我做错了什么.任何帮助或方向将不胜感激.
我正在寻找一种简单的解决方案来解决我遇到的过滤问题。我想在现场9过滤掉下面的字母组合:RB,RC和RG。我尝试了几种方法。我尝试的第一种方法是:
Set Bigpic = Workbooks.Open("S:\NFInventory\groups\CID\CID Database\BigPic Files\BigPic 2018.xlsx", , , , , , , , True)
lrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("A1:CU" & lrow).AutoFilter Field:=9, Criteria1:="<>RB", Operator:=xlAnd, Criteria2:="<>RC", Operator:=xlAnd, Criteria3:="<>RG"
Run Code Online (Sandbox Code Playgroud)
这失败了,所以我尝试使用一个数组,但这似乎也失败了。它返回时仅RG被过滤,而其他则保留。向正确方向的任何推动都会有所帮助。
Set Bigpic = Workbooks.Open("S:\NFInventory\groups\CID\CID Database\BigPic
Files\BigPic 2018.xlsx", , , , , , , , True)
lrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("A1:CU" & lrow).AutoFilter Field:=9,
Criteria1:=Array("<>RB", "<>RC", "<>RG")
Run Code Online (Sandbox Code Playgroud)