2015-05-25 3 views
0

Я столкнулся ошибкойНесоответствие типов ошибки из-за ведущий апостроф в Excel VBA

Тип Mismatch

на линии

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

Pl легко игнорировать несоответствие имени столбца в качестве кода, приведенного выше. Для ячейки в столбцах P и U вам должен быть апостроф, добавленный в начале ячейки, чтобы я мог отправлять электронную почту с помощью лотоса, используя мой макрос. Во избежание проблем, которые мне нужно добавить апостроф для каждой ячейки, мне нужно либо заставить Excel игнорировать символ апострофа, либо добавить символ автоматически, так что мне любопытно, какой метод вы предпочитаете? И как я могу это решить?

+1

Можете ли вы разместить образец значения для каждой из столбцов? –

ответ

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) 
+0

Спасибо, что вам это очень понравилось. – excel

+0

Привет, У меня возникла проблема с & concatenation. Теперь столбец datetime показывает значение, например, 42150.91666666 вместо правильного формата, например, 25/26/2015 10:00:00 PM. У вас есть какая-то подсказка, как это решить? Спасибо. – excel

+0

Да, используйте функцию 'format()'. Используйте это для ** собственного ** формата: 'format (42150.91666666," yyyy-mm-dd ")' :) Для произвольно упорядоченного американского формата используйте его так: 'format (42150.91666666," m/dd/yyyy HH: MM: SS AM/PM ")'. Объедините это с остальными вашими данными. – vacip