2017-05-05 4 views
-1

シンプルなマクロをいくつか思いついています。文字通り、セル範囲を別のシートにPasteValuesコピーし、Offsetを使用して入力を他のシート上の最後の行にドロップします。VBAコードのPastespecialが構文エラーを返します(タイトルのポストで提供されている解決策が機能していません)

大きな画像、私はさまざまな健康の&フィットネス値を取って、時間の経過とともに追跡できるようにブックの他のタブに接続するExcelで "入力"タブを作成しようとしています。以下は、私が話していた「入力」タブのスクリーンショットです。[1]やや作品

VBAは以下の通りです:

Sub DataWarehouseCL() 

Sheets("Input").Range("B11").Copy Sheets("Cardio Logs").Range("A1").End(xlDown).Offset(1, 0) 
Sheets("Input").Range("B2").Copy Sheets("Cardio Logs").Range("B1").End(xlDown).Offset(1, 0) 
Sheets("Input").Range("C11:E11").Copy Sheets("Cardio Logs").Range("C1:E1").End(xlDown).Offset(1, 0) 
Range("B11:E11").Select 
Selection.ClearContents 
Sheets("Cardio Logs").Select 
Range("B2").Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.Copy 
ActiveWindow.SmallScroll Down:=-255 
Range("B2").Select 
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ 
xlNone, SkipBlanks:=False, Transpose:=False 
Sheets("Input").Select 
Range("B2").Select 

End Sub 

しかし、私は...それは少し余分だと思うと無理をしたくないと道を問題にする羽目になる。これ以下のVBAは動作するはずですが、構文エラーが出てきます。

Sub DataWarehouseWL() 

Sheets("Input").Range("B6").Copy Sheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial(xlPasteValues) 
Sheets("Input").Range("B2").Copy Sheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial(xlPasteValues) 
Sheets("Input").Range("C6:F6").Copy Sheets("Workout Logs").Range("C1:F1").End(xlDown).Offset(1, 0).PasteSpecial(xlPasteValues) 
Range("B6:F6").Select 
Selection.ClearContents 
Sheets("Input").Select 
Range("B2").Select 

End Sub 

どのように記述したかわかりません。

[Input Tab][2] 
[One of the tabs that I'd like to populate using Input Tab][3] 
+0

。コピー先:=構文は.PasteSpecial操作ではありません – Jeeped

答えて

0

は私が私の最初の質問に答えるためにできるよう、あなたの答え、@Jeepedをマークする方法を見つけ出すことができませんでした。私はあなたの ".Value"エンディングを使用することができ、ちょうど各セルのためにそれを複製しました。私は最適ではないことを知っていますが、それはうまくいくでしょうし、私がやっていることは本当に自分自身の健康とフィットネスの測定、マクロ(炭水化物/タンパク質/脂肪)、利益/損失などを追跡しようとしています。私の体に特有のプログラムで、自分のパフォーマンスを最適化します。私の最初の質問を読んで反応する時間をとってくれてありがとう!

@Jeeped応答:

サブDataWarehouseWL()

WorkSheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0) = _ 
    WorkSheets("Input").Range("B6").Value 
WorkSheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0) = _ 
    WorkSheets("Input").Range("B2").Value 
WorkSheets("Workout Logs").Range("C1:F1").End(xlDown).Offset(1, 0) = _ 
    WorkSheets("Input").Range("C6:F6") 
Range("B6:F6").ClearContents 'what worksheet does this belong to...? 
Sheets("Input").Select 
Range("B2").Select 

End Subの

マイナー複製後の溶液:

サブDataWarehouseWL()

WorkSheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0) = _ 
    WorkSheets("Input").Range("B6").Value 
WorkSheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0) = _ 
    WorkSheets("Input").Range("B2").Value 
Worksheets("Workout Logs").Range("C1").End(xlDown).Offset(1, 0) = _ 
    Worksheets("Input").Range("C6").Value 
Worksheets("Workout Logs").Range("D1").End(xlDown).Offset(1, 0) = _ 
    Worksheets("Input").Range("D6").Value 
Worksheets("Workout Logs").Range("E1").End(xlDown).Offset(1, 0) = _ 
    Worksheets("Input").Range("E6").Value 
Sheets("Input").Range("F1").Copy Sheets("Workout 
    Logs").Range("F6").End(xlDown).Offset(1, 0) 
Range("B6:F6").ClearContents 
Sheets("Input").Select 
Range("B2").Select 

End Sub

0

直接値転送を使用してxlValuesを渡します。

Sub DataWarehouseWL() 

    WorkSheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0) = _ 
     WorkSheets("Input").Range("B6").Value 
    WorkSheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0) = _ 
     WorkSheets("Input").Range("B2").Value 
    WorkSheets("Workout Logs").Range("C1:F1").End(xlDown).Offset(1, 0) = _ 
     WorkSheets("Input").Range("C6:F6") 
    Range("B6:F6").ClearContents 'what worksheet does this belong to...? 
    Sheets("Input").Select 
    Range("B2").Select 

End Sub 

コピーする最も簡単な方法は、ペースト値とフォーマットはoffball空白のセルは、元の範囲に追加された不連続のセルの和集合をコピーすることです。あなたのデータを見ることなく、私はその列のZが空であると仮定しますが何かを示唆することはできません、

Sub DataWarehouseWL() 

    WorkSheets("Input").Range("B6, Z6").Copy Destination:=WorkSheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0) 
    WorkSheets("Input").Range("B2, Z2").Copy Destination:=WorkSheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0) 
    WorkSheets("Input").Range("C6:F6, Z6").Copy Destination:=WorkSheets("Workout Logs").Range("C1").End(xlDown).Offset(1, 0) 
    Range("B6:F6").Select 
    Selection.ClearContents 
    Sheets("Input").Select 
    Range("B2").Select 

End Sub 
+1

Whoa ... y'allsフォローアップはクレイジー速く、ありがとう!私は明日まで確認することができませんが、答えを提供する時間を取ってくれてありがとう! –

関連する問題