2016-06-01 13 views
0

私のExcelシートには、グラブしてワークブック(thisWB)にデータをコピーするコマンドボタン(GrabMyData)があります。今すぐこのコマンドボタンを押すと、データが列の「上の行」に表示されます。しかし、ExcelのVBAエディタで、run/sub userform playボタンを押すと、データがカラムのデータの最後の行に表示されます。だから、私のコマンドボタンは、実行/サブプレイボタンがやっていることをやっていないのはなぜですか?私は彼らの両方が同じ機能を果たしたと思いました。私は、関連するワークブックにマクロコマンドボタンを正しく割り当てていることに注意してください。お知らせ下さい。コマンドボタンと実行/サブユーザーフォームボタンが同期していません

Sub GrabMyData() 
    Dim myWB As Workbook 
    Dim thisWB As Workbook 
    Dim thisWS As Worksheet 
    Dim lastRow As String 

    Application.ScreenUpdating = False 

    Set myWB = Workbooks.Open("C:\Users\jjordan\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook\GTER232\TEST.csv") 

    myWB.Sheets("Sheet 1").Range("A8:F17").Copy 

    Set thisWB = ThisWorkbook 
    Set thisWS = ThisWorkbook.Sheets("Sheet 5") 

    thisWB.Activate 

    lastRow = ActiveSheet.Cells(Rows.Count, "H").End(xlUp).Row 

    thisWS.Range("H" & lastRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
:=False, Transpose:=False 
With Application 
    .CutCopyMode = False 
    .ScreenUpdating = True 
    End With 

myWB.Close 


End Sub 
+0

宛先が異なるので、正しく表示されますか?デスティネーションは 'lastRow'として計算されます。 'Debug.Print lastRow'のように、値にデバッグプリントを使ってみることはできますか?また、あなたはActiveSheetを使う必要があります、私は 'ThisWorkbook.Worksheets(" foo ")'の名前でその吸盤をピン止めします。 –

+0

はい宛先が異なっています。はい、インポートされたデータを列の範囲内の最後の行に表示し、列の範囲の先頭の行には表示しないように、lastRowとして計算されます。だから、マクロボタンが何か違うことをしても、コードが間違っていて欲しいのですが、vbaエディタのrun/sub userボタンを前提としていますか?あなたが提案した変更を行い、何が起こるかを見ます。 –

+0

残念ながら、私はまだ同じ結果を得ています。 –

答えて

0

あなたははThisWorkbookへのワークブック( "ワークブック名​​")を変更してみましたか?

関連する問題