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
宛先が異なるので、正しく表示されますか?デスティネーションは 'lastRow'として計算されます。 'Debug.Print lastRow'のように、値にデバッグプリントを使ってみることはできますか?また、あなたはActiveSheetを使う必要があります、私は 'ThisWorkbook.Worksheets(" foo ")'の名前でその吸盤をピン止めします。 –
はい宛先が異なっています。はい、インポートされたデータを列の範囲内の最後の行に表示し、列の範囲の先頭の行には表示しないように、lastRowとして計算されます。だから、マクロボタンが何か違うことをしても、コードが間違っていて欲しいのですが、vbaエディタのrun/sub userボタンを前提としていますか?あなたが提案した変更を行い、何が起こるかを見ます。 –
残念ながら、私はまだ同じ結果を得ています。 –