2016-05-24 13 views
1

私はセルにデータを取り込み、次のシートの日付を検索し、A2から値を貼り付けるマクロを取る単純なcopy + paste値を開発しようとしています:X2は日付を見つける。Excel VBA構文エラーとコンパイルの問題

サブCopy_PasteVal()

Dim dDate As Range 
Dim shtTrack As Worksheet 
Dim shtData As Worksheet 
Dim c As Range 
Dim DestCell As Range 

Set shtdata = Sheets(“Daily Total”) 
Set shtTrack = Sheets("Overall Daily Tracking") 
Set dDate = shtData.Range(“A2”) 

Worksheets("shtData").Range("A2:X2").Copy 
With Worksheets(shtTrack).Range("a1:a1000") 
    Set DestCell = .Find(dDate, LookIn:=xlValues) 
End With 
Worksheets(“shtTrack”).Range(DestCell).PasteSpecial Paste:=xlPasteValues 

End Subの

それはコンパイルしていないと私はVBAでのコーディングを見つけ出すそこに助けることができるから、私はいくつかの達人を願っています!

+0

'A2:X2からどこの日付に行が見つかりませんか? – findwindow

+0

あなたは何を得ていますか? – newguy

+0

これはここの書式設定であるかどうか分かりませんが、シートの引用符は '' 'でなければなりません。ワークシート(" shtTrack ")のように、 (ワークシート( "shtTrack")。)(開始日の 'Daily Total'と' dDate'と同じ) – BruceWayne

答えて

0

編集:私はそれを後方に持っているかもしれませんか?また、列Aを消去しようとしているかどうかもわかりません。

Dim dDate 
Dim shtTrack As Worksheet 
Dim shtData As Worksheet 
Dim c As Range 
Dim DestCell As Range 

Set shtData = Sheets("Daily Total") 
Set shtTrack = Sheets("Overall Daily Tracking") 
dDate = shtData.Range("A2").Value 
Set c = shtData.Range("A2:X2") 

With shtTrack.Range("a1:a1000") 
    Set DestCell = .Find(dDate, LookIn:=xlValues) 
    If Not DestCell Is Nothing Then 
     r = DestCell.Row 
    Else 
     Exit Sub 
    End If 
End With 

With shtTrack 
    .Range(.Cells(r, 1), .Cells(r, 24)).Value = c.Value 
End With 
+1

D(@Jatell、 'xlPasteValues'を貼り付けるときだけ値を必要としていたので、はるかに速い方法(そしてクリップボードの使用を避ける)は、findwindowが2行目から最後の行までのように、2つの範囲を等しく設定することです。これは素晴らしい "トリック"を学ぶことです) – BruceWayne

+0

それは素晴らしいヒントです、ありがとう! 残念ながら、私はまだ "ワークシートのある行..."行の "実行時エラー '9': 添字が範囲外です。 – jatell

+0

@jatell Ooops、あなたはすでに 'shtTrack'を修飾しています。編集をご覧ください。 – findwindow