Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/VBA автозаполнение всех значений в диапазоне - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
VBA автозаполнение всех значений в диапазоне
alunet Дата: Вторник, 07.02.2017, 11:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго дня

Столкнулся со следующей задачей. Необходимо автозаполнить все значения в диапазоне т.е. не одно значение в списке растянуть до конца, а несколько кт. будут встречаться.


Если делать через подобный код, то на весь диапазон автозаполняется только первое значение
[vba]
Код
Sub SmartFillDown()

    Dim rng As Range, n As Long
    Set rng = ActiveCell.Offset(0, -1).CurrentRegion

    If rng.Cells.Count > 1 Then
        n = rng.Cells(1).Row + rng.Rows.Count - ActiveCell.Row
        ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Type:=xlFillValues
    End If

End Sub
[/vba]



Подскажите, как можно решить
[moder]Используйте для кода кнопку #. Fx - это для формул.[/moder]


Сообщение отредактировал alunet - Вторник, 07.02.2017, 20:45
 
Ответить
СообщениеДоброго дня

Столкнулся со следующей задачей. Необходимо автозаполнить все значения в диапазоне т.е. не одно значение в списке растянуть до конца, а несколько кт. будут встречаться.


Если делать через подобный код, то на весь диапазон автозаполняется только первое значение
[vba]
Код
Sub SmartFillDown()

    Dim rng As Range, n As Long
    Set rng = ActiveCell.Offset(0, -1).CurrentRegion

    If rng.Cells.Count > 1 Then
        n = rng.Cells(1).Row + rng.Rows.Count - ActiveCell.Row
        ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Type:=xlFillValues
    End If

End Sub
[/vba]



Подскажите, как можно решить
[moder]Используйте для кода кнопку #. Fx - это для формул.[/moder]

Автор - alunet
Дата добавления - 07.02.2017 в 11:06
китин Дата: Вторник, 07.02.2017, 11:10 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7040
Репутация: 1080 ±
Замечаний: 0% ±

Excel 2007;2010;2016
И зачем макрос?
Код
=ЕСЛИ(A2="";E1;A2)

или приложите файл пример
К сообщению приложен файл: 222111.xlsx (9.4 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Вторник, 07.02.2017, 11:12
 
Ответить
СообщениеИ зачем макрос?
Код
=ЕСЛИ(A2="";E1;A2)

или приложите файл пример

Автор - китин
Дата добавления - 07.02.2017 в 11:10
alunet Дата: Вторник, 07.02.2017, 11:18 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
=ЕСЛИ(A2="";E1;A2)

через формулу понял, но хотелось бы через макрос научится)
К сообщению приложен файл: __.xlsb (29.3 Kb)


Сообщение отредактировал alunet - Вторник, 07.02.2017, 11:20
 
Ответить
Сообщение
=ЕСЛИ(A2="";E1;A2)

через формулу понял, но хотелось бы через макрос научится)

Автор - alunet
Дата добавления - 07.02.2017 в 11:18
sboy Дата: Вторник, 07.02.2017, 11:22 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Вариант автозаполнения:
1.Выделяем необходимый диапазон
2. жмем F5
3. -> выделить ->пустые ячейки
4. вводим "=" ,жмем стрелочку вверх
5. Ctrl+Enter


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Вариант автозаполнения:
1.Выделяем необходимый диапазон
2. жмем F5
3. -> выделить ->пустые ячейки
4. вводим "=" ,жмем стрелочку вверх
5. Ctrl+Enter

Автор - sboy
Дата добавления - 07.02.2017 в 11:22
alunet Дата: Вторник, 07.02.2017, 11:46 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Круто, спасибо за такой вариант
 
Ответить
СообщениеКруто, спасибо за такой вариант

Автор - alunet
Дата добавления - 07.02.2017 в 11:46
китин Дата: Вторник, 07.02.2017, 12:08 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 7040
Репутация: 1080 ±
Замечаний: 0% ±

Excel 2007;2010;2016
ну вот маленький макросик( ущербный, т.к. только учусь) столбец D должен быть ,как у вас в примере , заполнен.макрос будет работать до последней заполненной ячейки столбца D
[vba]
Код
Sub tutu()
  Dim tu&
  tu = Cells(Rows.Count, 4).End(xlUp).Row
   For i = 3 To tu
     If Cells(i, 3) = "" Then
         Cells(i, 6) = Cells(i - 1, 6)
       Else
         Cells(i, 6) = Cells(i, 3)
      End If
    Next i
    
End Sub
[/vba]
К сообщению приложен файл: 222222.xlsm (26.5 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениену вот маленький макросик( ущербный, т.к. только учусь) столбец D должен быть ,как у вас в примере , заполнен.макрос будет работать до последней заполненной ячейки столбца D
[vba]
Код
Sub tutu()
  Dim tu&
  tu = Cells(Rows.Count, 4).End(xlUp).Row
   For i = 3 To tu
     If Cells(i, 3) = "" Then
         Cells(i, 6) = Cells(i - 1, 6)
       Else
         Cells(i, 6) = Cells(i, 3)
      End If
    Next i
    
End Sub
[/vba]

Автор - китин
Дата добавления - 07.02.2017 в 12:08
Wasilich Дата: Вторник, 07.02.2017, 13:11 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
хотелось бы через макрос научится
Так можно.
[vba]
Код
Sub qqq()
  Dim i&, t$
  For i = 3 To Range("D" & Rows.Count).End(xlUp).Row
      If Cells(i, 3) <> "" Then t = Cells(i, 3)
      Cells(i, 7) = t
  Next
End Sub
[/vba]
 
Ответить
Сообщение
хотелось бы через макрос научится
Так можно.
[vba]
Код
Sub qqq()
  Dim i&, t$
  For i = 3 To Range("D" & Rows.Count).End(xlUp).Row
      If Cells(i, 3) <> "" Then t = Cells(i, 3)
      Cells(i, 7) = t
  Next
End Sub
[/vba]

Автор - Wasilich
Дата добавления - 07.02.2017 в 13:11
_Boroda_ Дата: Вторник, 07.02.2017, 14:43 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
У меня такой в Персонале лежит
[vba]
Код
Sub Zapolnenye_Null()
    Application.ScreenUpdating = 0
    cal_ = Application.Calculation
    Application.Calculation = xlCalculationManual
    On Error GoTo A
    n = Selection.Address
    If Range(n).Cells.Count - 1 Then
        Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        Range(n) = Range(n).Value
    End If
A:
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = 1
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня такой в Персонале лежит
[vba]
Код
Sub Zapolnenye_Null()
    Application.ScreenUpdating = 0
    cal_ = Application.Calculation
    Application.Calculation = xlCalculationManual
    On Error GoTo A
    n = Selection.Address
    If Range(n).Cells.Count - 1 Then
        Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
        Range(n) = Range(n).Value
    End If
A:
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 07.02.2017 в 14:43
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!