Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.08.2011, 14:54
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию Замена текста в Excel automation

Подскажите в чем проблема.
пытаюсь заменить текст в одной ячейке, но меняется во всей книге
ExАpp.activecell.replace(what:='.',replacement:=', ').
Хотя в ВБА эта команда меняет только в выделенной.а чтоб везде заменить вообще существует команда ExApp.Cells.replace...
Офис 2010.
Как же заменить с помощью дельфи?

Последний раз редактировалось Snake22, 09.08.2011 в 14:56.
Ответить с цитированием
  #2  
Старый 10.08.2011, 09:42
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Snake22
ExАpp.activecell.replace(what:='.',replacement:=', ').

Суть заключается в том, что замена происходит в указанном диапазоне, если же он не указан, то замена происходит во всей книге.

Код:
ExApp.Range[e.Cells[2,1],e.Cells[4,3]].Replace(What:= '{что меняем}', Replacement:= '{на что меняем}'); //замена произойдет в диапазоне A2:C4

Последний раз редактировалось Ildar-tsr, 12.08.2011 в 09:59.
Ответить с цитированием
  #3  
Старый 11.08.2011, 14:24
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Ага спасибо,в области заменяется норм.
А как же выделить одну ячейку,И если в ней есть искомый текст то заменить его (сам по себе ж эксель умеет поячеечно заменять).сейчас пока написал "ручную" замену,вытаскиваю текст из ячейки,заменяю средствами дельфи символ, и назад присваиваю текст ячейке. Но всё же интересует как средствами экселя это сделать.
Ответить с цитированием
  #4  
Старый 11.08.2011, 14:29
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Глупо звучит, но никак, потому что сама по себе ячейка не является range'м. Попробуйте например следующее:
Код:
ExApp.Range[e.Cells[1,1],e.Cells[1,1]].Replace(What:= '', Replacement:= '');
По идеи, он выделяет в область одну ячейку (А1) и следовательно должен производить замену именно в данной ячейке, НО ЕСЛИ НЕ ОШИБАЮСЬ замена все равно произойдет во всей книге

P.S. Найдете решение, обязательно поделитесь.
__________________
Google в помощь

Последний раз редактировалось Ildar-tsr, 12.08.2011 в 09:59.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:55.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025