powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Умножение столбца на определенное число
14 сообщений из 14, страница 1 из 1
Умножение столбца на определенное число
    #34324354
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть колонка с числами (цены), как умножить всю колонку на определенное число?
делал так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim skid As Single
Dim skidka As Double

  skid = InputBox("Сколько процентов скидка?")
  skidka = ( 1  - skid /  100 )

 Range("D1").Select
    ActiveCell.FormulaR1C1 = "=RC[-1]*skidka"
    Range("D1").Select
     Selection.Copy
    Cells(ActiveCell.SpecialCells(xlLastCell).Row,  4 ).Select
    Range(Cells( 2 ,  4 ), ActiveCell).Select
    ActiveSheet.Paste
в итоге ничего не получается. В колонке "D" вижу #ИМЯ?
Как быть?
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34324385
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Paste Special -> Multiply
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34324404
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понял...
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34324422
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
копируешь число, на которое нужно умножить,
потом выделяешь диапазон, который нужно умножить,
щелкаешь на нем правой кнопкой мыши, выбираешь Paste Special -> Multiply
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34324463
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub test1()
    Dim skidka As Double
    On Error Resume Next
    skidka = ( 1  - InputBox("Сколько процентов скидка?") /  100 )
    With ActiveSheet
        Range(.Cells( 1 ,  4 ), .Cells(.Rows.Count,  3 ).End(xlUp).Offset(,  1 )) = "=RC[-1]*" & skidka
    End With
End Sub

или так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub test2()
    Dim skidka As Double, rng As Range
    On Error Resume Next
    skidka = ( 1  - InputBox("Сколько процентов скидка?") /  100 )
    With ActiveSheet
        Set rng = Range(.Cells( 1 ,  4 ), .Cells(.Rows.Count,  3 ).End(xlUp).Offset(,  1 ))
        rng = Evaluate(rng.Offset(, - 1 ).Address & "*" & skidka)
    End With
End Sub


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34324524
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)
ни тем ни другим способом не получается
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34324578
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andMegaMKL (XL)
ни тем ни другим способом не получается

Вешай файл с примером и увидишь как все сразу получится :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34325066
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Больше чем уверен, что можно гораздо проще, но я делал так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub test2()
    
    Dim skidka As Double, rng As Range
    On Error Resume Next
    skidka = ( 1  - InputBox("Сколько процентов скидка?") /  100 )
    LastRow = WorksheetFunction.CountIf(Range(Cells( 1 ,  3 ), Cells( 65536 ,  3 )), ">0")
      Cells( 1 ,  4 ).Formula = "=C1*" & skidka
      Range(Cells( 1 ,  4 ), Cells(LastRow,  4 )).Select
      Selection.FillDown
    
End Sub

Если подскажите как правильнее, то имне пригодится, попробовал. то что описано выше, чё то уменя тоже не получилось!
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34325071
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
, rng As Range
- лишнее
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34325225
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вы и лентяи - примеры я тоже за вас писать должен!?
см. приложение

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34325233
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andMegaMKL (XL)
ни тем ни другим способом не получается
это из-за десятичных разделителей. так попробуйте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub test1()
    Dim skidka As Double
    On Error Resume Next
    skidka = ( 1  - InputBox("Сколько процентов скидка?") /  100 )
    With ActiveSheet
        Range(.Cells( 1 ,  4 ), .Cells(.Rows.Count,  3 ).End(xlUp).Offset(,  1 )) = "=RC[-1]*" & Replace(skidka, ",", ".")
    End With
End Sub
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub test2()
    Dim skidka As Double, rng As Range
    On Error Resume Next
    skidka = ( 1  - InputBox("Сколько процентов скидка?") /  100 )
    With ActiveSheet
        Set rng = Range(.Cells( 1 ,  4 ), .Cells(.Rows.Count,  3 ).End(xlUp).Offset(,  1 ))
        rng = Evaluate(rng.Offset(, - 1 ).Address & "*" & Replace(skidka, ",", "."))
    End With
End Sub
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34325311
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хмм..., а так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub test1()
    Dim skidka As Double
    On Error Resume Next
    skidka = ( 1  - Application.InputBox(prompt:="Discount %", Type:= 1 ) /  100 )
    With ActiveSheet
        Range(.Cells( 2 ,  4 ), .Cells(.Rows.Count,  3 ).End(xlUp).Offset(,  1 )) = "=RC[-1]*" & skidka
    End With
End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub test2()
    Dim skidka As Double, rng As Range
    On Error Resume Next
    skidka = ( 1  - Application.InputBox(prompt:="Discount %", Type:= 1 ) /  100 )
    With ActiveSheet
        Set rng = Range(.Cells( 2 ,  4 ), .Cells(.Rows.Count,  3 ).End(xlUp).Offset(,  1 ))
        rng = Evaluate(rng.Offset(, - 1 ).Address & "*" & skidka)
    End With
End Sub


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34325765
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vbapro andMegaMKL (XL)
ни тем ни другим способом не получается
это из-за десятичных разделителей. так попробуйте


Так получается
...
Рейтинг: 0 / 0
Умножение столбца на определенное число
    #34329470
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)хмм..., а так?
...

Не повлияло. Забавно, при вводе численного литерала в VBA коде пишем "0.0", а при преобразовании в текст разделитель получается Application.International(xlDecimalSeparator). В Range.Formula должно попасть значение в формате "0.0". Но если выражение помещать в Range.FormulaLocal, то все в порядке.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Умножение столбца на определенное число
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]