我试图确定一个单元格是否包含某个文本字符串,以返回同一行上另一个单元格中的值。
我得到一个不匹配错误。
Sub iflocate_school1()
Dim MailValue As String
Dim EcoleValue As String
MailValue = Range("C7:C725").Value
EcoleValue = Range("E7:E725").Value
If MailValue Like "Cambridge.ac" Then
EcoleValue = "Cambridge"
ElseIf MailValue Like "imperial" Then
EcoleValue = "Imperial"
ElseIf MailValue Like "oxford" Then
EcoleValue = "Oxford"
ElseIf MailValue Like "lse" Then
EcoleValue = "LSE"
ElseIf MailValue Like "york" Then
EcoleValue = "York"
Else EcoleValue = " "
End If
End Sub
3条答案
按热度按时间uz75evzq1#
请检查下面的脚本。请注意,该脚本假定您正在处理当前活动工作簿的工作表(1)。
您收到不匹配错误:
正如我在评论部分提到的,您得到的错误是由于将值的范围数组存储到字符串变量中。
下面的代码将range(“C7:C725”)存储到一个range对象(来自上面的示例)中,然后我使用您创建的if语句对range(“C7:C725”)中的每个单元格执行一个循环。
if语句结果将出现在下一列cel,(offset(0,1))so range(“D7:D725”)。如果希望结果显示在列(“E7:E725”)上,请将offset更改为(0,2)。
请使用以下代码:
最后,if语句看起来只不过是首字母大写,而“Else If”列表可能会增长到数百个,如果你创建了一个首字母大写的函数,那么就有可能删除整个if语句部分。
您可以添加一个首字母大写的函数:
并将代码简化为:
wztqucjr2#
这就是我的方法。
阅读注解并根据需要调整代码
ljsrvy3e3#
或者,我认为您可以对行进行迭代.
我认为问题可能是Like命令返回了一个值。
试试看:
同样,如果你在代码中改变行,下划线键就像回车一样,即,
或者,我认为您可以对行进行迭代.
我不确定使用的范围,我可能不是那么先进。