0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10

Ошибка при работе с формулами MS Excel

27.12.2017, 03:04. Показов 1257. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, столкнулся на днях с проблемой ввода формул в ячейки эл. таблицы. Суть в том, что при попытке использовать в формуле значение другой ячейки (при том вместо номера ячейки использовать переменную) возникает ошибка (скрин ниже).



Подскажите пожалуйста, в чём заключается моя ошибка?

Код в спойлере ниже.
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  excel: variant;
  x: real;
  row:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  excel := CreateOleObject('Excel.Application');
  excel.DisplayAlerts := false;
  excel.WorkBooks.Add[1];
  excel.Visible := True;
 
  excel.WorkBooks[1].WorkSheets[1].Columns[1].ColumnWidth := 10;
  excel.WorkBooks[1].WorkSheets[1].Columns[2].ColumnWidth := 20;
  excel.WorkBooks[1].WorkSheets[1].Range['A1'] := 'X';
  excel.WorkBooks[1].WorkSheets[1].Range['B1'] := 'Y';
  x:=0.1;
  row:=2;
  while x<=100 do
  begin
  excel.WorkBooks[1].WorkSheets[1].Cells[row, 1] := x;
  excel.WorkBooks[1].WorkSheets[1].Range['B',row].Formula:='=ln(A', row,')';
  x:=x+0.5;
  Inc(row);
  end;
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2017, 03:04
Ответы с готовыми решениями:

Ошибка при работе с Excel
Определяю количество занятых ячеек (ячеек с информацией) в столбце файл-Excel, точнее номер последнего занятого столбца. При выполнении...

Ошибка при работе с excel
Нужно прочитать значение из ячейки. Например 1,1 (A1). Возникает ошибка -------------- Исключение из HRESULT: 0x800A03EC ...

Ошибка при работе с Excel
Программа взаимодействует с экселем. Если я правильно понял, у меня не подключена какая-то библиотека, потому что данный проект работал,...

8
Модератор
 Аватар для D1973
9854 / 6393 / 2453
Регистрация: 21.01.2014
Сообщений: 27,172
Записей в блоге: 3
27.12.2017, 06:50
Delphi
1
excel.WorkBooks[1].WorkSheets[1].Range['B',row].Formula := Format('=ln(A%d)', [row]);
Добавлено через 2 минуты
или те же яйца, вид сбоку...
Delphi
1
excel.WorkBooks[1].WorkSheets[1].Range['B',row].Formula := '=ln(A' + IntToStr(row) +')';
0
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10
27.12.2017, 10:51  [ТС]
D1973, нет, всё равно ошибка. В первом случае (я имею ввиду
Цитата Сообщение от D1973 Посмотреть сообщение
excel.WorkBooks[1].WorkSheets[1].Range['B',row].Formula := Format('=ln(A%d)', [row]);
) даёт такую ошибку
Тут хотя бы приложение запускается и прописывает первое значение "Х".

Вложение 896982

Вложение 896983



Во втором случае (виде сбоку)

0
Айлурофил
 Аватар для Massaraksh7
503 / 435 / 111
Регистрация: 27.05.2017
Сообщений: 2,555
Записей в блоге: 5
27.12.2017, 11:48
Delphi
1
excel.WorkBooks[1].WorkSheets[1].Range['B',row].Formula := '=ln(A' + IntToStr(Trunc(row)) +')';
А вообще в программе логические ошибки.
0
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10
27.12.2017, 11:51  [ТС]
Massaraksh7, можешь указать на них?
0
Айлурофил
 Аватар для Massaraksh7
503 / 435 / 111
Регистрация: 27.05.2017
Сообщений: 2,555
Записей в блоге: 5
27.12.2017, 11:53
row должно меняться. row должно иметь целый тип.
0
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10
27.12.2017, 11:58  [ТС]
Massaraksh7, прога глохнет на том же месте
0
Айлурофил
 Аватар для Massaraksh7
503 / 435 / 111
Регистрация: 27.05.2017
Сообщений: 2,555
Записей в блоге: 5
27.12.2017, 12:15
Лучший ответ Сообщение было отмечено Hoosfive как решение

Решение

Delphi
1
excel.WorkBooks[1].WorkSheets[1].Cells[row,2].Formula:='=ln(A'+IntToStr(row)+')';
row сделай целым.
1
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10
27.12.2017, 12:21  [ТС]
Massaraksh7, спасибо, всё пашет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.12.2017, 12:21
Помогаю со студенческими работами здесь

Ошибка при работе с Excel
ошибка Добавлено через 27 секунд private void button3_Click_1(object sender, RoutedEventArgs e) { excelapp...

Странная ошибка при работе с Excel
В общем, имеется такая процедура конвертации XLS в CSV (даже не спрашивайте, зачем мне это нужно): procedure...

Ошибка при работе с Excel файлом
В модели расположен эксель файл с именем GIS и функция которая должна с ним работать. В ней следующий код: GIS.readFile(); y=0; o=0; ...

Ошибка при работе с макросами Excel
Здравствуйте! При работе в Excel с толкнулся с такой ошибкой: Compile error in hidden module: Лист1 помогите пожалуйста разобраться...

Ошибка в приложении при работе с excel
Здравствуйте написал приложение! В приложении считывает данные с Excel таблицы. У меня на пк все нормально, никаких ошибок. А вот на пк...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru