2015-11-19 3 views
0

Я перебор клеток в моем листе, и получить vallue клетки, как так:получить значение ячейки или изменить значение, если это формула - VBA

item = Cells(i, 3).value 

хотя, иногда, у меня есть некоторые формулы в ячейках, как:

=BD=F5=E3 
=some string 

это тип ошибки, но первенствовать создает его как формулы, так что, когда я на этих клетках этого: Cells().Value я получаю сообщение об ошибке несоответствия типов.

есть ли способ устранить эту ошибку? или что-то вроде объявления всех ячеек на листе как строки ни на что?

благодаря

+0

Можете ли вы опубликовать остальную часть кода (соответствующие части, если они длинны)? В вашем файле Excel некоторые ячейки установлены равными другим? Или в вашем макросе VB вы устанавливаете значения равными? И «это типовые ошибки», можете ли вы пояснить, что вы подразумеваете под этим? Это ошибки? (т. е. '# VALUE',' # N/A' и т. д.) – BruceWayne

+0

Если мы уверены, что нет формул, только текст, то вместо '.Value' попробуйте использовать' .Formula' – Demetri

ответ

2
  • Cells(r, c).Value дает отображаемое значение ячейки
  • Cells(r, c).Text дает отображаемое значение возвращается в виде строки
  • Cells(r, c).Formula возвращает формулу ячейки
  • Cells(r, c).FormulaR1C1 возвращает формулу в R1C1 синтаксис.
0

Не уверен, что я полностью понимаю, без остальной части кода, однако, если вы объявите свой пункт в Cells (I, 3) .value как вариант, вы можете проверить тип данных и действовать соответственно , Например, чтобы игнорировать ошибки, используйте IsError (ячейки (i, 3) .value) и т. Д.

Смежные вопросы