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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнить выделеную область формулой - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнить выделеную область формулой (Макросы/Sub)
Заполнить выделеную область формулой
AVI Дата: Четверг, 04.10.2018, 17:22 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
На листе 2 есть столбец с цифрами. Нужно, что бы в нем вместо цифры появилась формула "Эта самая цифра * наценка * курс".
Активную ячейку заполнить получается, а выделенную область нет...

[vba]
Код
Sub RRR()
    ActiveCell.Formula = "=" & ActiveCell & "*" & Worksheets("наценка курс").Range("B2") & "*" & Worksheets("наценка курс").Range("B3") & ""
End Sub
[/vba]
К сообщению приложен файл: _Microsoft_Exce.xlsm(12.4 Kb)
 
Ответить
СообщениеДобрый день!
На листе 2 есть столбец с цифрами. Нужно, что бы в нем вместо цифры появилась формула "Эта самая цифра * наценка * курс".
Активную ячейку заполнить получается, а выделенную область нет...

[vba]
Код
Sub RRR()
    ActiveCell.Formula = "=" & ActiveCell & "*" & Worksheets("наценка курс").Range("B2") & "*" & Worksheets("наценка курс").Range("B3") & ""
End Sub
[/vba]

Автор - AVI
Дата добавления - 04.10.2018 в 17:22
Roman777 Дата: Четверг, 04.10.2018, 17:32 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 880
Репутация: 115 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Попробуйте так:
[vba]
Код
Sub RRR2()
Dim r As Range
    For Each r In Selection
        r.Formula = "=" & r & "*" & Worksheets("наценка курс").Range("B2") & "*" & Worksheets("наценка курс").Range("B3") & ""
    Next r
End Sub
[/vba]


Много чего не знаю!!!!
 
Ответить
СообщениеПопробуйте так:
[vba]
Код
Sub RRR2()
Dim r As Range
    For Each r In Selection
        r.Formula = "=" & r & "*" & Worksheets("наценка курс").Range("B2") & "*" & Worksheets("наценка курс").Range("B3") & ""
    Next r
End Sub
[/vba]

Автор - Roman777
Дата добавления - 04.10.2018 в 17:32
_Boroda_ Дата: Четверг, 04.10.2018, 17:57 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13189
Репутация: 5424 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Для не очень больших чисел сразу для всех без цикла можно примерно так
[vba]
Код
Sub Макрос1()
    Application.ScreenUpdating = 0
    With Sheets("наценка курс")
        t_ = "=" & .Range("B2") & "*" & .Range("B3") & "*"
    End With
    Range("G4") = 1E+15
    Range("G4").Copy
    With Range("C3:C10")
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
        .Replace What:="1000000000", Replacement:=t_
    End With
    Range("G4").Clear
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 2443529.xlsm(17.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДля не очень больших чисел сразу для всех без цикла можно примерно так
[vba]
Код
Sub Макрос1()
    Application.ScreenUpdating = 0
    With Sheets("наценка курс")
        t_ = "=" & .Range("B2") & "*" & .Range("B3") & "*"
    End With
    Range("G4") = 1E+15
    Range("G4").Copy
    With Range("C3:C10")
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
        .Replace What:="1000000000", Replacement:=t_
    End With
    Range("G4").Clear
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 04.10.2018 в 17:57
AVI Дата: Четверг, 04.10.2018, 18:32 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
Roman777, Работает
_Boroda_, Я имел ввиду не конкретно область C3:C10, а ту, что сам выделю.


Сообщение отредактировал AVI - Четверг, 04.10.2018, 19:52
 
Ответить
СообщениеRoman777, Работает
_Boroda_, Я имел ввиду не конкретно область C3:C10, а ту, что сам выделю.

Автор - AVI
Дата добавления - 04.10.2018 в 18:32
_Boroda_ Дата: Четверг, 04.10.2018, 20:14 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13189
Репутация: 5424 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
И шо, Вам таки сложно поменять Range() на Selection?
[vba]
Код
Sub Макрос1()
    Application.ScreenUpdating = 0
    With Sheets("наценка курс")
        t_ = "=" & .Range("B2") & "*" & .Range("B3") & "*"
    End With
    With Range("A1").SpecialCells(xlLastCell).Offset(1, 1)
        .Value = 1E+15
        .Copy
        With Selection
            .PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
            .Replace What:="1000000000", Replacement:=t_
        End With
        .Clear
    End With
    Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 2443529_1.xlsm(17.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеИ шо, Вам таки сложно поменять Range() на Selection?
[vba]
Код
Sub Макрос1()
    Application.ScreenUpdating = 0
    With Sheets("наценка курс")
        t_ = "=" & .Range("B2") & "*" & .Range("B3") & "*"
    End With
    With Range("A1").SpecialCells(xlLastCell).Offset(1, 1)
        .Value = 1E+15
        .Copy
        With Selection
            .PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd
            .Replace What:="1000000000", Replacement:=t_
        End With
        .Clear
    End With
    Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 04.10.2018 в 20:14
AVI Дата: Четверг, 04.10.2018, 20:15 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
Пытаюсь домучить
Нужно, что бы вставлялось не значение, а ссылка на ячейки.
Одновременно преобразовывая не числовые форматы в числовые

[vba]
Код
Sub RRR()
    Dim r As Range
    For Each r In Selection
        r.NumberFormat = "#,##0"
        r.Formula = "= CDbl(r) * 'Наценка курс'!R2C2*'Наценка курс'!R3C2 """
    Next r
End Sub
[/vba]
Но почему-то ругается на строку
[vba]
Код
r.Formula = "= CDbl(r) * 'Наценка курс'!R2C2*'Наценка курс'!R3C2 """
[/vba]
К сообщению приложен файл: 5086149.xlsm(13.9 Kb)
 
Ответить
СообщениеПытаюсь домучить
Нужно, что бы вставлялось не значение, а ссылка на ячейки.
Одновременно преобразовывая не числовые форматы в числовые

[vba]
Код
Sub RRR()
    Dim r As Range
    For Each r In Selection
        r.NumberFormat = "#,##0"
        r.Formula = "= CDbl(r) * 'Наценка курс'!R2C2*'Наценка курс'!R3C2 """
    Next r
End Sub
[/vba]
Но почему-то ругается на строку
[vba]
Код
r.Formula = "= CDbl(r) * 'Наценка курс'!R2C2*'Наценка курс'!R3C2 """
[/vba]

Автор - AVI
Дата добавления - 04.10.2018 в 20:15
_Boroda_ Дата: Четверг, 04.10.2018, 20:18 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13189
Репутация: 5424 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так?
[vba]
Код
Sub RRR()
    Dim r As Range
    Selection.NumberFormat = "#,##0"
    For Each r In Selection
        r.Formula = "= " & CDbl(r) & "* 'Наценка курс'!R2C2*'Наценка курс'!R3C2 "
    Next r
End Sub
[/vba]

А в предыдущем коде +15 надо бы заменить на +12


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак?
[vba]
Код
Sub RRR()
    Dim r As Range
    Selection.NumberFormat = "#,##0"
    For Each r In Selection
        r.Formula = "= " & CDbl(r) & "* 'Наценка курс'!R2C2*'Наценка курс'!R3C2 "
    Next r
End Sub
[/vba]

А в предыдущем коде +15 надо бы заменить на +12

Автор - _Boroda_
Дата добавления - 04.10.2018 в 20:18
AVI Дата: Четверг, 04.10.2018, 20:19 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Нет, но у Вас что-то совсем не то вставляется
в первой ячейке =3*75*750
второй =3*75*790
 
Ответить
Сообщение_Boroda_, Нет, но у Вас что-то совсем не то вставляется
в первой ячейке =3*75*750
второй =3*75*790

Автор - AVI
Дата добавления - 04.10.2018 в 20:19
AVI Дата: Четверг, 04.10.2018, 20:20 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 434
Репутация: 7 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, работает, спасибо
 
Ответить
Сообщение_Boroda_, работает, спасибо

Автор - AVI
Дата добавления - 04.10.2018 в 20:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заполнить выделеную область формулой (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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