Vba 如何显式声明字符串的开始/结束
我一直在使用一些代码来打开工作簿并根据引用单元格查找值。它搜索字符串并获取其旁边的单元格。不幸的是,我现在在工作簿中有两个单元格“包含”引用字符串。一个单元格是“当前分数”,另一个单元格是“当前分数的百分比”。是否有一种方式可以说明我只想要“当前分数”,而不想要单元格中的其他内容 对不起,如果这是一个有点罗嗦,我可以提供必要的代码 编辑:以下是代码:Vba 如何显式声明字符串的开始/结束,vba,excel,macros,Vba,Excel,Macros,我一直在使用一些代码来打开工作簿并根据引用单元格查找值。它搜索字符串并获取其旁边的单元格。不幸的是,我现在在工作簿中有两个单元格“包含”引用字符串。一个单元格是“当前分数”,另一个单元格是“当前分数的百分比”。是否有一种方式可以说明我只想要“当前分数”,而不想要单元格中的其他内容 对不起,如果这是一个有点罗嗦,我可以提供必要的代码 编辑:以下是代码: Sub Future_Score() Dim r Dim findValues() As String Dim Wrbk
Sub Future_Score()
Dim r
Dim findValues() As String
Dim Wrbk As Workbook
Dim This As Workbook
Dim sht As Worksheet
Dim i
Dim tmp
Dim counter
Dim c As Range
Dim firstAddress
Dim rng As Range
ReDim findValues(1 To 3)
findValues(1) = "Curren" & "*" & "Core"
findValues(2) = "dummyvariable1"
findValues(3) = "dummyvariable2"
counter = 0
r = Range("A163").End(xlDown).Row
Set rng = Range(Cells(163, 1), Cells(r, 1))
Set This = ThisWorkbook
For Each tmp In rng
Workbooks.Open tmp
Set Wrbk = ActiveWorkbook
'For Each sht In Wrbk.Worksheets
Set sht = ActiveSheet
For i = 1 To 3
With sht.Range(Cells(1, 1), Range("A1").SpecialCells(xlCellTypeLastCell))
Set c = .Find(findValues(i), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Offset(0, 1).Value
secondAddress = c.Offset(0, 3).Value
thirdAddress = c.Offset(0, 4).Value
Do
This.Activate
tmp.Offset(0, 4).Value = firstAddress
Set c = .FindNext(c)
counter = counter + 1
Loop While Not c Is Nothing And c.Value = firstAddress
End If
End With
Wrbk.Activate
Next
'Wrbk.Activate
'Next sht
Wrbk.Close
Next tmp
End Sub
对代码进行了一些修改。虚拟变量将用于其他函数,但基本上要点是打开工作簿,查找单元格,获取旁边的单元格,粘贴到原始工作簿中。问题是它会拾取多个包含字符串的单元格。我使用了“Curren”和“Core”
,因为宏似乎不能很好地处理字符串中的空格。更改
Set c=.Find(findValue(i),LookIn:=xlValues)
到
Set c=.Find(findValue(i),LookIn:=xlValues,LookAt:=xlother)
要求整个单元格匹配搜索字符串,而不仅仅是单元格的一部分。好吧,您还没有显示您正在使用的代码,但为什么不检查单元格的值以获得准确的字符串“Current Score”,而不检查单元格是否包含该字符串?PS-在询问有关代码的问题时始终提供相关代码。更新:)我从未指定搜索“仅”和不搜索“包含”,我将如何做到这一点?我认为字符串的限制是固有的?事实上,您使用.Find()方法调用时,它会查看值,看看是否可以在值中的任何位置找到它。这与检查值是否完全相等不同。啊,这是一个简单的更改哈哈:)非常感谢您的帮助,我真的很困惑!!