Страницы: 1
RSS
свойство .top .left
 
Уважаемые формчане!  
 
В VBA  ActiveCell есть свойства .top и .left  
 
т.е. ActiveCell.top и ActiveCell.left дают представление о позиции активной ячейки  
 
Вопрос, как сделать наооборот - т.е. кодом активировать ячейку знаяя ее координаты
 
Проссумировать ширины столбцов от А до тех пор, пока сумма не станет равной Left  
Со строками аналогично
 
{quote}{login=webley}{date=10.03.2010 03:08}{thema=}{post}Проссумировать ширины столбцов от А до тех пор, пока сумма не станет равной Left  
Со строками аналогично{/post}{/quote}  
 
Т.е без цикла никак?
 
Что-то ничего другого в голову не приходит...
 
А зачем это, кстати, надо?
 
А если так:  
1. В известных вам координатах создаёте какой-нибудь элемент управления (ну, например, myTextBox)  
2. Определяете строку и столбец расположения верхнего левого угла элемента управления myTextBox  
  Dim Столбец As Long, Строка As Long  
  Столбец = myTextBox.TopLeftCell.Column  
  Строка = myTextBox.TopLeftCell.Row  
3. Удаляете myTextBox  
4. Cells(Строка,Столбец).Select
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
А я вообще не могу придумать практического применения ТАКОГО способа активации ячейки.
 
А я чо? Я ни чо...    
Человек спросил, я предложил вариант решения.  
Вроде бы должно работать.    
А зачем - это его проблема. Мне не трудно поделиться мыслями.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 

Очень трудно что-либо посоветовать не представляя Вашу задачу. На самом деле не так все просто. Есть экранные координаты - pixels и координаты листа points. Про какие координаты Вы спрашиваете? <BR>Для начала смачная ссылка про связь координат: http://processtrends.com/pg_charts_cell_size.htm

 
Боюсь, Константин нам не ответит...  
А я бы поставил вопрос иначе:  
Как получены координаты ячейки? Не взглядом же...
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=10.03.2010 09:34}{thema=}{post}Боюсь, Константин нам не ответит...  
А я бы поставил вопрос иначе:  
Как получены координаты ячейки? Не взглядом же...{/post}{/quote}  
 
Не взглядом. С этого же и начали - ActiveCell.top и ActiveCell.left
 
{quote}{login=VovaK}{date=10.03.2010 07:04}{thema=}{post}

Очень трудно что-либо посоветовать не представляя Вашу задачу. На самом деле не так все просто. Есть экранные координаты - pixels и координаты листа points. Про какие координаты Вы спрашиваете? <BR>Для начала смачная ссылка про связь координат: http://processtrends.com/pg_charts_cell_size.htm

{/post}{/quote}  
 
Я думаю, вопрос про points - или top/left может вернуть значение в пикселях?
 
{quote}{login=webley}{date=11.03.2010 08:44}{thema=Re: }{post}Не взглядом. С этого же и начали - ActiveCell.top и ActiveCell.left{/post}{/quote}Думаю, что не таким способом. Потому, что если есть ActiveCell, то незачем издеваться с .top и .left. Потому что есть ActiveCell.address
Bite my shiny metal ass!      
 
Пожалуй, вы правы. Мне тоже не понятно, зачем это нужно - ответить на этот вопрос может только автор... Может координаты получены из положения какого-то объекта?
 
Тогда совет Alex_ST рулит.  
Но игра "чего хочет Ирэн" продолжается до появления Ирэн :)
Bite my shiny metal ass!      
 
{quote}{login=webley}{date=11.03.2010 09:13}{thema=}{post}Пожалуй, вы правы. Мне тоже не понятно, зачем это нужно - ответить на этот вопрос может только автор... Может координаты получены из положения какого-то объекта?{/post}{/quote} Да координаты были получены с объекта - диаграммы. Для корректной работы нужно было снять выделение с графика и сделать активной ячеку рядом с этим графиком.    
Сделал так:  
Do While ActiveSheet.Columns(myLeft).Left < ActiveSheet.ChartObjects(ActiveChart.Parent.Index).Left + ActiveSheet.ChartObjects(ActiveChart.Parent.Index).Width  
myLeft = myLeft + 1  
 
Loop  
 
Do While ActiveSheet.Rows(myTop).Top < ActiveSheet.ChartObjects(ActiveChart.Parent.Index).Top + ActiveSheet.ChartObjects(ActiveChart.Parent.Index).Height  
myTop = myTop + 1  
 
Loop  
 
 
Просто думал, что  есть способ активировать ячейку по ее координатам  
 
Спасибо запомощь!
 
{quote}{login=The_Prist}{date=11.03.2010 09:57}{thema=}{post}Хотите более простой метод?  
 
Dim sAddr as String  
sAddr = ActiveSheet.ChartObjects(ActiveChart.Parent.Index).TopLeftCell.Offset(-1, -1).Address  
 
Сразу активируем  
 
ActiveSheet.ChartObjects(ActiveChart.Parent.Index).TopLeftCell.Offset(-1, -1).Activate{/post}{/quote}  
 
Спсибо! То же нетривиально догадаться, что к объекту примененим offset
Страницы: 1
Читают тему
Наверх