Страницы: 1
RSS
Назначение диапазона переменной
 
Добрый день. Можно ли в данном случае использовать одну переменную? а не а1, а2 итд
А то диапазон который надо перенести ("E3:F107")
Код
Sub test123()
' Действия происходят на листе 1
a1 = Range("E3").Value
a2 = Range("E4").Value
a3 = Range("E5").Value
a4 = Range("E6").Value
a5 = Range("E7").Value
  
b6 = Range("F3").Value
b7 = Range("F4").Value
b8 = Range("F5").Value
b8 = Range("F6").Value
b8 = Range("F7").Value

' удаляем активный лист 1
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True


'копирование на листе 2
    Range("A1").Copy
    Range("B1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    
' создаем лист3
Worksheets.Add.Name = "Лист3"

' выгружаем с переменных на лист 3
Range("A1").Value = a1
Range("A2").Value = a2
Range("A3").Value = a3
Range("A4").Value = a4
Range("A5").Value = a5
  
Range("B1").Value = b6
Range("B2").Value = b7
Range("B3").Value = b8
Range("B4").Value = b8
Range("B5").Value = b8
End Sub
Изменено: Александр.М - 09.05.2016 13:36:07
 
Код
Range("A1:B5").Value = Range("E3:F7").Value

Полностью должно выглядеть так:
Код
Sub test123()
    Dim ws As Worksheet
    'назначаем переменной ссылку на активный лист
    'чтобы после добавления нового листа можно было к нему обратиться
    Set ws = ActiveSheet
 
    Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True

    Range("A1").Copy Range("B1") 'правда не очень понимаю смысл сего действа...

    Worksheets.Add.Name = "Лист3"
    'переносим значения
    Range("A1:B5").Value = ws.Range("E3:F7").Value
End Sub
Изменено: The_Prist - 09.05.2016 13:41:50
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Расскажите словами, что Вы пытаетесь изобразить?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Расскажите словами, что Вы пытаетесь изобразить?

Мне необходимо как то запомнить значения листа1 диапазон ("E3:F107") далее макрос меняет значения в
диапазоне  ("E3:F107") на этом же листе их тоже надо запомнить, далее все что запомнили нужно выложить на новом листе
уже в два разных диапазона, допустим в ("A3:B107") и  ("C3:D107")  как то так
 
Цитата
Александр.М написал:
все что запомнили нужно выложить на новом листе
уже в два разных диапазона, допустим в ("A3:B107") и  ("C3:D107")
Код
Sub test123()
    Dim arr
    'назначаем переменной массива значения диапазона "E3:F107" активного листа
    arr = Range("E3:F107").Value
  
    Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
    '-----------------------------------------------
    'до сих пор не понимаю зачем эта строка
    Range("A1").Copy Range("B1")
    '-----------------------------------------------
    Worksheets.Add.Name = "Лист3"
    'выгружаем массив в два других диапазона
    Range("A3:B107").Value = arr
    Range("C3:D107").Value = arr
End Sub
Изменено: The_Prist - 09.05.2016 13:56:37
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Для общего развития )
Код
Sub TestRange()
Dim MyRange As Range
    Set MyRange = Range("E3:F107")
    MyRange.Copy Sheets("Лист2").Range("A1")
End Sub
 
Цитата
'до сих пор не понимаю зачем эта строка
Это для примера просто из головы, что есть копирование в этой части макроса.
 
Спасибо! Помогли :)
Страницы: 1
Наверх