Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: Пред. 1 2
RSS
Изменение пути к файлу с помощью формулы (функции)
 
Можно.
Поставьте обычным способом (вообще любым) рабочую ссылку на закрытый файл, скопируйте то, что будет в строке формул, пропишите это в макросе вместо =2+2
R1C1Local можно выкинуть, если не используете такую адресацию.
 
Выкинул R1C1Local и всё заработало!
Так вот теперь вопрос: можно ли взять текст формулы из ячейки того же ряда, добавить к нему "=" и передать все это в код после .Formula =
 
Можно.
 
Через переменные?
 
Если очень хочется - можно через переменные. А можно и без. А можно заменой... но про это Вы ведь уже прочитали...
 
Разобрался с кодом Замена, но появился вопрос.
Строка Range("E" & i).Replace What:="1", Replacement:="=" & Range("D" & i) реализует замену числа 1 в ячейке на содержимое другой ячейки со знаком "=".
Вместо 1 в коде можно, конечно написать всё что угодно. Можно и с подстановочными символами. Но "*" почему-то не заменяет любое значение в том числе пустое.
Подскажите, что вместо этого нужно указать?
 
... и как можно исключить из кода обработку первой строки, на тот случай если это строка с заголовками?
 
До чего-то допер...
Код получался вот такой (ниже). Работает. Но вдруг в нем есть какие-то излишиства. Сделайте замечания...
Код
Public Sub s()
Dim rw As Long
Dim i As Long
rw = Cells(Rows.Count, 8).End(xlUp).Row
For i = 2 To rw
      Range("H" & i).Replace What:="*", Replacement:="=" & Range("G" & i)
Next
End Sub
 
Код
Range("H" & i)="=" & Range("G" & i)
- почему не так?
 
Hugo,Чуствую хороший ответ, вот примерчик бы.Ато здесь понял здесь не понял)))
 
Так пример  с Вас!
А если речь о примере всего кода - так он выше, только строку 6 замените.
 
а что делает этот код
Код
Public Sub s()Dim rw As Long
Dim i As Long
rw = Cells(Rows.Count, 8).End(xlUp).Row
For i = 2 To rw
      Range("H" & i).Replace What:="*", Replacement:="=" & Range("G" & i)
Next
End Sub
 
Этот макрос заменяет любое содержимое ("*") ячейки в столбце H на содержимое соответствующей ячейки в столбце G, подставляя перед этим "=". Таким образом текст в столбце H превращается в формулу и вычисляется. Строка заголовков при этом не учитывается (For i = 2 To rw).
Hugo, а можете объяснить в чем принципиальная разница этих двух вариантов по строке 6?
 
Вот такая конструкция подойдет если нужно обработать только одну ячейку:
Код
Public Sub sh()
ActiveSheet.Cells(ActiveCell.Row, 8) = "=" & ActiveSheet.Cells(ActiveCell.Row, 7)
End Sub
 
Цитата
DmitriyBastr написал:
в чем принципиальная разница
- в том, что мой вариант пропишет формулу в любом случае.
Страницы: Пред. 1 2
Читают тему (гостей: 2)