我正在创建一个电子表格应用程序,用于为我的团队自动生成电子邮件内容。不是每个人都使用相同的电子邮件客户端,所以目标是将数据写入微软剪贴板,以便轻松粘贴。
为了保留格式,我创建了一个表格,其中包含要连接并写入剪贴板的各种文本块。我有四个电子邮件模板,除了一个之外,其他所有模板都可以使用。
下面是一段代码:
If EmailTemplate = "How-To" Then
EmailSub = "OAS: How-To Guide"
EmailCode1 = Evaluate("VLookup(Email_Type,EmailBodies,2,False)")
RepEmail = Evaluate("VLookup(Email_Type, EmailBodies, 3, False)")
EmailCode2 = Evaluate("VLookup(Email_Type, EmailBodies, 4, False)")
RepCalendar = Evaluate("VLookup(Email_Type, EmailBodies, 5, False)")
EmailCode3 = Evaluate("VLookup(Email_Type, EmailBodies, 6, False)")
ElseIf EmailTemplate = "PQW" Then
EmailSub = "When You Are Ready, Please Tell Us About Your Project Requirements"
EmailCode1 = Evaluate("VLookup(Email_Type,EmailBodies,2,False)")
RepEmail = Evaluate("VLookup(Email_Type, EmailBodies, 3, False)")
EmailCode2 = Evaluate("VLookup(Email_Type, EmailBodies, 4, False)")
RepCalendar = Evaluate("VLookup(Email_Type, EmailBodies, 5, False)")
EmailCode3 = Evaluate("VLookup(Email_Type, EmailBodies, 6, False)")
我正在使用Vlookup函数引用一个表。
第一个条件EmailTemplate = "How-To"
起作用,但是对于“PQW”,在分配变量EmailCode 1时,我收到类型不匹配错误。
对于“操作方法”,单元格中的文本为:
感谢您对开放式自动化软件感兴趣。请参阅以下链接,以获得有关满足您的特定要求的指导:
“PQW”为:
请告诉我们有关您的项目要求的更多信息。通过填写此工作表,我们将更容易帮助您集中精力评估我们软件中对您重要的部分。
请花几分钟时间填写并通过电子邮件发送至
两者都包含换行符并且都只包含文本。代码中看到的所有变量都是String数据类型。
我试过:
1.将单元格数据类型设置为文本
1.验证Vlookup搜索的字符串术语是否与表中显示的完全匹配。
1.将所有变量的数据类型更改为变量。
1.删除表中有问题的行并手动创建副本。
1.在单元格中输入完全相同的公式,看看它是否返回正确的数据-它确实返回了。
相同的公式和数据类型适用于所有其他条件。
2条答案
按热度按时间erhoui1w1#
必须是名称。自己解决它们,并向VLOOKUP传递一个实际的
Range
对象而不是名称:Excel可以(确实)在将命名区域传递给函数之前对其进行解析,但VBA不知道它必须这样做,并试图将您给它的名称传递给VLOOKUP,但VLOOKUP需要Range
对象。您可以通过针对
CVErr(xlErrRef)
(“error 2023”/#REF!
工作表错误的变量/错误值)检查后期绑定VLookup函数返回的特定错误代码来验证是否确实如此。如果函数返回“error 2042”/
#N/A
worksheet error,您可以针对CVErr(xlErrNA)
进行验证-这意味着查找没有找到它要查找的内容。gpfsuwkq2#