所以,这就是我所面对的。
我有一些vba代码,它会找到包含特定字符串的单个列中的每个单元格。它寻找的单词位于一个名为totArray的数组中。这很有效。
问题是,当单元格中的单词包含“SUBTOTAL”或类似内容时,它仍会找到并复制它。此外,还有一些单词,其中TOTAL或TOTAAL后面没有未知长度的数字。
请参阅我附带的代码。我如何得到它,以便它可以找到单元格包含TOTAL或TOTAAL的所有情况,但始终只跟一个非常见的数字结构。
Sub CopyValues()
Dim totArray As Variant
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim NoRows As Long
Dim DestNoRows As Long
Dim I As Long
Dim J As Integer
Dim rngCells As Range
Dim rngFind As Range
Dim Found As Boolean
totArray = Array("TOTAAL ", "TOTAL")
Set wsSource = Worksheets("Input")
Set wsDest = Worksheets("Output")
NoRows = wsSource.Range("A65536").End(xlUp).Row
DestNoRows = 2
For I = 1 To NoRows
Set rngCells = wsSource.Range("A" & I)
Found = False
For J = 0 To UBound(totArray)
Found = Found Or Not (rngCells.Find(totArray(J)) Is Nothing)
Next J
If Found Then
rngCells.Copy wsDest.Range("B" & DestNoRows)
DestNoRows = DestNoRows + 1
End If
Next I
End Sub
答案 0 :(得分:0)
您可以将通配符放入字符串see this documentation。
[System.Web.Http.HttpGet]
public IHttpActionResult Payment(string uri)
{
string[] sess = ...
if (someRedirectCondition)
return Redirect("http://a.link.to.your.html.page");
else
return Ok(sess); // A method type is inferred to Ok<string[]>(string[] content)
}
会找到Sub total ,Grand total 等作为星号通配符的任意数量的字符。
"*TOTAL"
会在最后找到 total 的任何字词(如上例所示),并且在该字词后面最多包含5个字符(因为有5个问号)。例如:Sub total123 或Sub total54321
"*TOTAL?????
会发现Sub 总计123 或Sub 总计54321 (请注意,字符/通配符之间的字符串中可以使用空格。)
使用此信息,您应该能够调整*TOTAL ?????
字符串以适应您的情况。
您应该在Array
方法中指定LookAt
参数。
e.g。 .find
。
使用LookAt函数非常简单。
rngCells.Find(totArray(J), , , LookAt:= xlWhole)
表示搜索值必须与整个单元格内容匹配。- 醇>
xlWhole
表示搜索值只需匹配单元格的一部分
注意:在该示例中,省略了xlPart
和After
参数。
LookIn
参数是第4个参数,这就是逗号之间有空格的原因。
如果您未指定参数,Excel将使用您通过VBA 或 GUI查找窗口使用LookAt
方法运行的上次搜索中的参数。
您可以阅读有关每个参数的详情,包括.Find
参数in this article about the vba find method.