Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: использование переменной в адресе ячейки Добавлено: 24.02.12 11:24  

Автор вопроса:  штабист
Добрый день, коллеги.
Подскажите, пожалуйста, каким синтаксисом пользоваться, если в адресе ячейке необходимо указать переменную.

Я не понимаю,например, почему не работает (Method 'Range' of object '_Global' failed) следующий вариант:


Dim i as integer
i = 10
Range("$A$" & " & i &").value =....


На самом деле, для меня критично именно буквенное обозначение адреса ячейки, т.к. я составляю макрос для автоматизации инфтрумента Excel "поиск решения". Кому интересно, ниже код, в котором нужно использовать переменные адреса ячейки:

Sub solve_function_1()
'
' использование функции "поиск решения"
SolverOk SetCell:="$A$3", MaxMinVal:=3, ValueOf:=303, ByChange:="$H$3:$J$3"
SolverAdd CellRef:="$H$3", Relation:=3, FormulaText:="$L$3"
SolverAdd CellRef:="$I$3", Relation:=3, FormulaText:="$M$3"
SolverAdd CellRef:="$J$3", Relation:=3, FormulaText:="$N$3"
SolverSolve (True)
Еnd Sub

В данный код необходимо добавить переход с одной строчки на другую, я действую через оператор цикла и переменную n:
Но к полезному результату это не приводит:
Dim n as integer
for n = 3 to 23
SolverOk SetCell:="$A$"&"&3&"...'и далее вмсесто "3".
- после такого синтаксиса ничего не происходит, увы.
Буду благодарен вам за подсказку

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #1
Добавлено: 24.02.12 11:43
Range("$A$" & i)
или так
Cells(i,j)

Ответить

Номер ответа: 2
Автор ответа:
 штабист



Вопросов: 2
Ответов: 3
 Профиль | | #2 Добавлено: 24.02.12 13:13
Спасибо!
Позвольте задать ещё 2 вопроса вдогонку:
1.Как быть с обозначением диапазона, например:
  1. Range($A$10:$B10")<br>
?
В моем случае я заменил буквенный адрес на индексы, т.е. вместо
  1. ByChange:="$H$3:$J$3"

Написал:
  1. ByChange:=Range(Cells(n,8),Cells(n,10))

Но всегда ли можно заменить буквенный адрес на индексы?
2.Вот например, при вводе формулы в ячейку:
Cells(i,j).formula = "=Сумм(B2:10)" получаю "#ИМЯ?" вместо нужной формулы. В чем может быть дело?

Ответить

Номер ответа: 3
Автор ответа:
 штабист



Вопросов: 2
Ответов: 3
 Профиль | | #3 Добавлено: 24.02.12 13:17
Поправка к предыдущему посту:
Вместо
  1. Cells(i,j).formula = "=Сумм(B2:10)"

заменить на
  1. Cells(i,j).formula = "=Сумм(B2:B10)"

Ответить

Номер ответа: 4
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #4 Добавлено: 29.02.12 06:49
Cells(i,j).formula = "=Сумм(B2:10)" получаю "#ИМЯ?" вместо нужной формулы. В чем может быть дело?
используй
  1. Cells(i,j).FormulaLocal = "=Сумм(B2:B10)"
вместо
  1. Cells(i,j).Formula = "=Сумм(B2:B10)"

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам