在Excel 2007中,我循环遍历Sheet 2中第4列的值.仍然在Sheet 2中,我想将vlookup公式的结果输出到第5列.vlookup公式需要引用Sheet 1,其中引用列是.为此,我有以下公式
Range("E2") = Application.WorksheetFunction.VLookup(Range("D2"), _
Worksheets("Sheet1").Range("A1:C65536"), 1, False)
Run Code Online (Sandbox Code Playgroud)
问题,它返回错误代码1004.我读到这是因为我需要在运行公式之前选择Sheet 1,例如:
ThisWorkbook.Worksheets("Sheet1").Select
Run Code Online (Sandbox Code Playgroud)
但是搜索到的值Range("D2")不属于Sheet 1,并且在将Sheet 1带入视图后仍然返回代码1004.
在这种情况下,引用不同工作表的正确方法是什么?
我在excel单元格中有"abcd 24 ef-gh"文本.
我需要摆脱"24"和" - "但保留所有字母和空格.
我有一个循环文本的函数,并使用like运算符识别字母.出于某种原因,它不排除我在循环之前添加了替换语句的"24"和" - ":
Function StripNonAlpha(TextToReplace As String) As String
Dim i As Integer
Dim a, b, c As String
a = Replace(TextToReplace, "-", " ")
For i = 1 To Len(a)
b = Mid(a, i, 1)
If b Like "[A-Z,a-z, ]" Then
c = c & b
End If
Next i
StripNonAlpha = c
End Function
Run Code Online (Sandbox Code Playgroud)
我本来希望使用正则表达式而不是这个循环,但是当我发现很多其他语言的例子时,我并没有弄清楚用于VBA的正则表达式.
任何正则表达式的建议都是受欢迎的,但我也想知道为什么我的循环没有按预期运行.