Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2010, 13:05   #1
Kuraj
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 20
По умолчанию Как получить тип range из значений cells

Здравствуйте народ...я перенёс тему в соответствующий раздел..

Есть такой код.
Код:
Sub ПримерИспользования()
    НарисоватьСтрелку[a6], [d1]
    НарисоватьСтрелку[a9], [d10]
End Sub

Sub ПримерИспользования(ByRef Ячейка1 As Range, ByRef Ячейка2 As Range)
    BeginX = Ячейка1.Left + Ячейка1.Width / 2
    BeginY = Ячейка1.Top + Ячейка1.Height / 2
    EndX = Ячейка2.Left + Ячейка2.Width / 2
    EndY =Ячейка2.Top + Ячейка2.Height / 2

    ActiveSheet.Shapes.AddLine(BeginX, BeginY, EndX, EndY).Line.EndArrowheadStyle = msoArrowheadTriangle
End Sub
Как мне использовать его если у меня данные ячеек расположены в cells[i,j]
а не в типах range

Или даже так как можно с помощью VBA узначть range например активной ячейки..
Kuraj вне форума Ответить с цитированием
Старый 11.01.2010, 13:57   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

cells[i,j] возвращает объект типа Range

Просто переведите этот код на Delphi, оставив рисование стрелки в виде отдельной функции.
EducatedFool вне форума Ответить с цитированием
Старый 11.01.2010, 14:49   #3
Kuraj
Пользователь
 
Регистрация: 04.01.2010
Сообщений: 20
По умолчанию

На конец то дошло до меня...

всё спс разобрался написал работает))

Код:
BeginX:= XL.Worksheets[1].Cells[yach1, yach11].Left + xl.Worksheets[1].Cells[yach1, yach11].Width / 2 ;
    BeginY:= XL.Worksheets[1].Cells[yach1, yach11].Top + XL.Worksheets[1].Cells[yach1, yach11].Height / 2 ;
    EndX:= XL.Worksheets[1].Cells[yach2, yach22].Left + XL.Worksheets[1].Cells[yach2, yach22].Width / 2  ;
    EndY:= XL.Worksheets[1].Cells[yach2, yach22].Top + XL.Worksheets[1].Cells[yach2, yach22].Height / 2  ;
    xl.ActiveSheet.Shapes.AddLine(BeginX, BeginY, EndX, EndY).Line.EndArrowheadStyle:=2;
Kuraj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать range в другой документ Diego__ Microsoft Office Word 10 25.12.2009 15:39
Получить минимальное из трёх значений fiero Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.06.2009 21:33
Range & Cells ("")(Э_Є)("") Microsoft Office Excel 6 26.01.2009 11:19
Нестандартное использование Cells.FormulaR1C1 и Cells.Text Lokkie Microsoft Office Excel 3 21.01.2009 17:41
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13