2017-05-16 25 views
0

Excelで選択範囲を掛けるために使用しているマクロを簡略化します。私はしばしばSAPからデータをエクスポートし、値はテキストとして形式化されます。それらを数値に変更する簡単な方法は、それらを1で掛けることです。値を-1または他の任意の数で掛ける必要があることもあります。 私は必要なことをするマクロを作成しましたが、わかるように、空白のセルを見つけてそこに値を書き、選択した範囲を掛けて値を削除する必要があります。私は空のセルを見つけて何かを書き込むプロセスなしでマクロを持っていたいと思います。選択した範囲にVBAを使用してExcelで選択した数値を掛ける方法

Sub macro() 
    Dim Cinitel As Integer 
    Dim PocetRadku As Long 
    Dim PocetSloupcu As Integer 

    Cinitel = InputBox("Enter a number to multiply with") 

    PocetSloupcu = Range("a1").CurrentRegion.Columns.Count 
    PocetRadku = Range("a1").CurrentRegion.Rows.Count 

    Cells(PocetRadku + 1, PocetSloupcu) = Cinitel 
    Cells(PocetRadku + 1, PocetSloupcu).Copy 

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply, _ 
     SkipBlanks:=True, Transpose:=False 

    Cells(PocetRadku + 1, PocetSloupcu) = "" 

    Calculate 
End Sub 

データオブジェクトを使用してクリップボードに値を入力することはできません。

私はこのような何かを思い付いたが、それは明らかに動作しません:)

Sub macro1() 
    Dim myString As String 
    Dim number As Integer 

    number = InputBox("Enter a number to multiply with") 
    myString = Selection.Address 
    myString.Formula = Application.Evaluate("=" & myString & "*" & number) 

をあなたは私を助けることができますか?

+0

は、あなただけの '' Selection.NumberFormat = "0" を行うと、あなたは、乗算器を必要とするならば、 'Selection.Value = Selection.Valueすることはできません。これを試してみてください' – Wolfie

答えて

0

(-1)*

Sub test1() 

    Dim rng As Range, nbr as integer 

    Set rng = Selection 
    nbr = InputBox("Enter a number to multiply with") 
    rng.Value = Evaluate("IF(" & rng.Address & "<>""""," & _ 
       rng.Address & "*" & nbr & ","""")") 

    Set rng = Nothing 

End Sub 
関連する問題