|
▼nossori さん 今晩は
>この表の7月のRange("A4")をアクティブセルにして、関連のブックからデータを取り出して、貼り付けるマクロにしたく思っています。このA4のセルを指定したいのですが、どのようにしたら良いのでしょうか。また、その次には8月のRange("E4")をアクティブにしてデータを貼り付けることにも使えて、毎月のデータが順次アクティブセルを指定して貼り付けられるようにしたいんですが。
>
>元データは「売上一覧」の A3にあり、月が変わる時にそのデータが消され、翌月のデータスペースになるので、月末に消す前にこのような一覧表に貼り付けをして、データをT機単位に管理したく考えています。
>アクティブセルを活用しているのですが、7月の元データも8月の元データも、何時も このシートの「 A3 」に貼り付けられますが何処が問題なのでしょうか?教えていただきたくお願いします。
>
>
>Dim tBK As Workbook
>
> On Error Resume Next
> Set tBK = Workbooks("BB売上集計と請求書発行.xls")
> If Err Then
> Set tBK = Workbooks.Open("U:\AA売上と請求\BB売上集計と請求書発行.xls")
’↑の行で、アクティブなブックがtBKになっています。
> End If
> On Error GoTo 0
> If tBK Is Nothing Then Exit Sub
=============ここから
> tBK.Worksheets("売上一覧").Range("A3", Cells(Rows.Count, 1).End(xlUp)).Resize(, 3).Select
> Selection.Copy ThisWorkbook.Worksheets(1).Cells(ActiveCell.Row,
~~~~~~~~~~~~~~~
’↑tbkのアクティブなセルです。
ActiveCell.Column
~~~~~~~~~~~~~~~~~~
’↑tbkのアクティブなセルです。
'===============================ここまで削除し、以下に置き換える
Dim copy元 As Range
Set copy元 = tBK.Worksheets("売上一覧").Range("A3", _
Cells(Rows.Count, 1).End(xlUp)).Resize(, 3)
With ThisWorkbook.Worksheets(1)
If .Cells(3, 256).End(xlToLeft).Column < 3 Then
copy元.Copy .Cells(3, 256).End(xlToLeft)
Else
copy元.Copy .Cells(3, 256).End(xlToLeft).Offset(0, 1)
End If
End With
'=====================ここまで
> tBK.Close False
> Set tBK = Nothing
>また、貼り付ける時に月が間違った場合、7月の元データを、8月の欄に貼り付けた場合に、張り込み位置が間違っているという
>MsgBoxでアラームを出したいのですが・・・何か良い方法は無いでしょうか。
これまで考える時間はありません。あしからず。
|
|