Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Умножение столбца на определенное число / 14 сообщений из 14, страница 1 из 1
12.02.2007, 15:57:43
    #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
12.02.2007, 16:04:06
    #34324385
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
Paste Special -> Multiply
...
Рейтинг: 0 / 0
12.02.2007, 16:08:52
    #34324404
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
Не совсем понял...
...
Рейтинг: 0 / 0
12.02.2007, 16:13:56
    #34324422
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
копируешь число, на которое нужно умножить,
потом выделяешь диапазон, который нужно умножить,
щелкаешь на нем правой кнопкой мыши, выбираешь Paste Special -> Multiply
...
Рейтинг: 0 / 0
12.02.2007, 16:22:17
    #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
12.02.2007, 16:34:11
    #34324524
andMegaM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
KL (XL)
ни тем ни другим способом не получается
...
Рейтинг: 0 / 0
12.02.2007, 16:46:23
    #34324578
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
andMegaMKL (XL)
ни тем ни другим способом не получается

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

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
12.02.2007, 18:59:20
    #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
12.02.2007, 19:00:26
    #34325071
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
Код: plaintext
, rng As Range
- лишнее
...
Рейтинг: 0 / 0
12.02.2007, 19:57:38
    #34325225
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
ну вы и лентяи - примеры я тоже за вас писать должен!?
см. приложение

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
12.02.2007, 20:02:37
    #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
12.02.2007, 20:40:13
    #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
13.02.2007, 07:52:35
    #34325765
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Умножение столбца на определенное число
vbapro andMegaMKL (XL)
ни тем ни другим способом не получается
это из-за десятичных разделителей. так попробуйте


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

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


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