由于Excel VBA中的前导撇号而导致类型不匹配错误

时间:2015-05-25 08:46:58

标签: excel vba excel-vba

我遇到了错误

  

类型不匹配

stSubject = (Sheets("Summary").Cells(i, "AD").Value) + " " + 
            (Sheets("Summary").Cells(i, "AE").Value) + " " + 
            (Sheets("Summary").Cells(i, "AF").Value) + " " + 
            (Sheets("Summary").Cells(i, "AG").Value) + " " + 
            (Sheets("Summary").Cells(i, "AH").Value) + " " + 
            (Sheets("Summary").Cells(i, "AI").Value)

我的工作表格式如下所示: enter image description here

请忽略列名称与我上面提供的代码不匹配。对于P列和U列的单元格,你必须在单元格的开头添加一个撇号,以便我可以使用我的宏发送莲花笔记电子邮件。避免我需要为每个单元格添加撇号的麻烦,我需要让Excel忽略撇号字符或自动添加字符,所以我很好奇你们喜欢哪种方法?我该如何解决?

1 个答案:

答案 0 :(得分:2)

Excel会自动忽略撇号,因此实际上不是问题。

尝试使用&代替+。如果所有输入值都是字符串,则+仅作为连接使用。如果其中有一个数字(或日期),VBA会尝试以数学方式添加它们,并且您会收到类型不匹配错误。

stSubject = (Sheets("Summary").Cells(i, "AD").Value) & " " & 
            (Sheets("Summary").Cells(i, "AE").Value) & " " & 
            (Sheets("Summary").Cells(i, "AF").Value) & " " & 
            (Sheets("Summary").Cells(i, "AG").Value) & " " & 
            (Sheets("Summary").Cells(i, "AH").Value) & " " & 
            (Sheets("Summary").Cells(i, "AI").Value)