|  23.08.2016, 11:20 | #1 | 
| Участник | Проблема с формулами в Excel 
			
			Всем доброго времени суток! Проблема в следующем: из textBuffer в excel записываю данные. Некоторые их этих данных - формулы в виде "=...", однако excel изначально эти формулы не воспринимает. Работать они начинают только в том случае, если выделить формулу в ячейке и нажать enter. Или если выделить все ячейки с формулами и заменить "=" на "=". Но хотелось бы как-то это автоматизировано сделать, чтобы формулы были рабочими сразу. Но не особо представляю, как реализовать. Формат ячеек в шаблоне Excel, куда записываются формулы, общий. | 
|  | 
|  23.08.2016, 11:24 | #2 | 
| Участник | Цитата: Там есть специальный метод InsertFormula на ComExcelDocument_RU, который использует COM метод FormulaR1C1, у меня проблем не возникало. | 
|  | 
|  25.08.2016, 14:31 | #3 | 
| Участник | 
			
			Формулы вида '=RC[-2]+RC[-1]' или '=J4-D4' ? Можно так: X++:                 TextToColumns = range.TextToColumns();
                range.NumberFormat("# ##0,0");Последний раз редактировалось Player1; 25.08.2016 в 14:44. | 
|  | 
|  25.08.2016, 14:56 | #4 | 
| Участник | 
			
			Запись в Excel происходит следующим образом: есть такой объект Microsoft.Office.Interop.Excel.Range tmpRange; мы берем, копируем в буффер обмена данные из текстового буфера: _textBuffer.toClipboard(); А после этого просто вставляем из этого буффера обмена в excel: tmpRange.PasteSpecial(xlPasteTypeAll, xlPasteSpecialOperation, missing, missing); При этом заметил, что формулы, которые проделывают только математические операции ( к примеру =A1+B2*10) в Excel работают, а формулы, которые содержат слова (СУММ, ПРАВсимв и т.д.) воспринимаются только после ручной активации. | 
|  | 
|  25.08.2016, 15:36 | #5 | 
| Участник | 
			
			Формулы с русскими именами функций нужно писать в FormulaLocal или FormulaR1C1Local, а для Formula и FormulaR1C1 можно использовать только оригинальные английские наименования
		 | 
|  |