Добрый день! На листе 2 есть столбец с цифрами. Нужно, что бы в нем вместо цифры появилась формула "Эта самая цифра * наценка * курс". Активную ячейку заполнить получается, а выделенную область нет...
[vba]
Код
Sub RRR() ActiveCell.Formula = "=" & ActiveCell & "*" & Worksheets("наценка курс").Range("B2") & "*" & Worksheets("наценка курс").Range("B3") & "" End Sub
[/vba]
Добрый день! На листе 2 есть столбец с цифрами. Нужно, что бы в нем вместо цифры появилась формула "Эта самая цифра * наценка * курс". Активную ячейку заполнить получается, а выделенную область нет...
[vba]
Код
Sub RRR() ActiveCell.Formula = "=" & ActiveCell & "*" & Worksheets("наценка курс").Range("B2") & "*" & Worksheets("наценка курс").Range("B3") & "" End Sub
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]
Код
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]
Для не очень больших чисел сразу для всех без цикла можно примерно так [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
И шо, Вам таки сложно поменять 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]
И шо, Вам таки сложно поменять 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]
Код
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]
Код
Sub RRR() Dim r As Range For Each r In Selection r.NumberFormat = "#,##0" r.Formula = "= CDbl(r) * 'Наценка курс'!R2C2*'Наценка курс'!R3C2 """ Next r End Sub
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
Так? [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_