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

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

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

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



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

Код в спойлере ниже.
Кликните здесь для просмотра всего текста
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
9804 / 6351 / 2447
Регистрация: 21.01.2014
Сообщений: 27,036
Записей в блоге: 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
498 / 430 / 111
Регистрация: 27.05.2017
Сообщений: 2,527
Записей в блоге: 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
498 / 430 / 111
Регистрация: 27.05.2017
Сообщений: 2,527
Записей в блоге: 5
27.12.2017, 11:53
row должно меняться. row должно иметь целый тип.
0
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10
27.12.2017, 11:58  [ТС]
Massaraksh7, прога глохнет на том же месте
0
Айлурофил
 Аватар для Massaraksh7
498 / 430 / 111
Регистрация: 27.05.2017
Сообщений: 2,527
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Безопасность Kubernetes с Falco и обнаружение вторжений
Mr. Docker 18.05.2025
Переход организаций к микросервисной архитектуре и контейнерным технологиям сопровождается лавинообразным ростом векторов атак — от тривиальных попыток взлома до многоступенчатых кибератак, способных. . .
Аугментация изображений с Python
AI_Generated 18.05.2025
Собрать достаточно большой датасет для обучения нейронной сети — та ещё головная боль. Часами вручную размечать картинки, скармливать их ненасытным алгоритмам и молиться, чтобы модель не сдулась при. . .
Исключения в Java: советы, примеры кода и многое другое
Javaican 18.05.2025
Исключения — это объекты, созданные когда программа сталкивается с непредвиденной ситуацией: файл не найден, сетевое соединение разорвано, деление на ноль. . . Список можно продолжать до бесконечности. . . .
Как сделать SSO (Single Sign-On) в C# приложении
stackOverflow 18.05.2025
SSO — это механизм, позволяющий пользователю пройти аутентификацию один раз и получить доступ к нескольким приложениям без повторного ввода учетных данных. Вы наверняка сталкивались с ним, когда. . .
Kubernetes с Apache Flink для обработки данных в реальном времени
Mr. Docker 17.05.2025
Kubernetes — это целая философия управления распределёнными приложениями. В отличие от "примитивных" решений вроде Docker Swarm, K8s (как его ласково называют в тусовке DevOps-инженеров) предлагает. . .
Использование декораторов в Python
py-thonny 17.05.2025
Если вы когда-нибудь задумывались о том, как красиво расширить функциональность кода без лишней возни и дублирования, декораторы в Python — та самая волшебная палочка, которую вы искали. По сути, это. . .
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru