Prisvoit imya listu, nahodyascheesya v yacheyke.

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Pavelklim
Сообщения: 1
Зарегистрирован: 26 окт 2004, 06:55

Uvazhaemie pomogite razreshit vot takoy vopros (sam v VBA ne silen). Pri pomoschi CommandButton nuzhno:
1.Scopirovat list s dannimi i prisvoit emu kak imya znachenie ukazannogo diapazona.
2.Sozdat na ishodnom liste diapazon s silkami na scopirovanniy list.
Zaranee blagodaren.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

В обработчикt CommandButton пишем:

Код: Выделить всё

Dim sh As Worksheet, shName As String, sh2 As Worksheet
  Set sh = ActiveSheet
  shName = ActiveCell.Value     'или =Range("Указанный диапазон").Value
  'вот копирование
  sh.Copy After:=sh
  'вот присвоение имени
  ActiveSheet.Name = shName
  'вот возврат на исходный лист и вписывание туда формулы
  Set sh2 = ActiveSheet
  sh.Activate
  sh.Range("a1").Value = "=" & sh2.Range("a1").Address(True, True, xlA1, True)

sh2.Range("a1").Address(True, True, xlA1, True) - это текст ссылки на ячейку a1 листа sh2. Фактически это выражение даст "<имя_листа>!A1"

Подробнее о записи формул см свойства Formula, FormulaLocal, FormulaR1C1 и FormulaR1C1Local.
А также FormulaArray.
Ответить