BookA.xlsファイルからBookB.cvsがあり、
bookB.csvには1から不特定に数字が昇順にならんでいます
bookB.csv
A B
1 1 文字列A
2 2 文字列B
3 54 文字列C
4 100 文字列D
5 101 文字列E
BookA.xlsからbookB.csvを読出し、特定の数値(100番)を探し出し
その行から下100行をコピー、BookA.xlsのSheetCに貼り付け
という作業をするマクロを組みたいと思っています。
'CSVファイルを開く
CSVname = Application.GetOpenFilename(Title:="CSVファイル指定", fileFilter:="CSV ファイル (*.CSV), *.csv")
If CSVname = False Then
MsgBox "ファイルを1個指定して下さい"
Exit Sub
End If
'ファイルをひらく
Workbooks.Open CSVname
'100番検索
Set Obj = Cells.Find("100", LookAt:=xlWhole)
If Obj Is Nothing Then
MsgBox "見つかりませんでした。"
Else
Tate = Cells.Find("100", LookAt:=xlWhole).Row
End If
'A列100番のある行から199行を選択・コピー
エラー→Range(Cells(1, Tate), Cells(2, Tate)).Select
このように作ってみたのですが、どうしてもここでエラーになり
先に進めません。
どうか解決方法をお教え下さい。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
>Tate = Cells.Find("100", LookAt:=xlWhole).Row
検索結果が入るのは"Obj"なので、
Tate = Obj.Row ですね。
>Range(Cells(1, Tate), Cells(2, Tate)).Select
Range(Cells(1, Tate), Cells(2, Tate)).Copy
だとエラーにはならないようです。
きちんと意図通りに動きました
.Copyで動かなかった時があったので.selectにしたのですが
.Copyでも動くようになりました。
ありがとうございます!
No.2
- 回答日時:
Workbooks.Openの行以降をコピーして動かしてみましたが、エラーは起きませんでした。
XP SP2+OFFICE2003です。With Activesheet
Range(.Cells(1, Tate), .Cells(2, Tate)).Select
End With
のようにシートを明示してみてはどうでしょう
でも「A列100番のある行から199行を選択」なら
If Obj Is Nothing Then
MsgBox "見つかりませんでした。"
Else
Obj.Resize(199,2).Select
Selection.Copy
End If
でよいかもしれません
こちらの方がスマートにできそうですね
Resizeプロパティの事も念頭に置きながら
完成まで頑張ってみたいと思います。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Refreshで落ちる
-
ExcelVBAで、隠しフォルダにあ...
-
ASPで,mdbファイルへのinsert...
-
Excel VBA シートを指定して...
-
VBAでFTPファイル転送がうまく...
-
ブラウザでASPファイルを開こう...
-
【Excel VBA】PDFを作成して,...
-
EXCEL VBA ファイルが開かれて...
-
Lubuntuでフォントをインストー...
-
共有ファイルにあるマクロの同...
-
VBSで指定したフォルダにファイ...
-
ATtiny2313のEEPROM領域の設定...
-
外部ファイルを読み込むFlashが...
-
SDカード(16GB)に保存した動画...
-
VBAでファイルパスが長すぎてコ...
-
Excelでdatファイルを作成??
-
バッチによるショートカットの...
-
batファイル処理でのテキストフ...
-
Thunderbird ローカルフォルダ...
-
レーザープリンターのA4・5...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでファイルパスが長すぎてコ...
-
Microsoft Access エラー 3051
-
Lubuntuでフォントをインストー...
-
【Excel VBA】PDFを作成して,...
-
FFFTPでサーバに新規フォルダが...
-
Refreshで落ちる
-
Excel VBA シートを指定して...
-
OCXのライセンス
-
フォルダ参照ではなくファイル...
-
エクセルVBA フォームを開く時...
-
OpenOfficeの書式エラーの質問...
-
ASP上でFileSystemObjectのDele...
-
ExcelVBAで、隠しフォルダにあ...
-
VBAでFTPファイル転送がうまく...
-
グーグルドライブからコピーし...
-
EXCEL VBA ファイルが開かれて...
-
BASP21のアップロードについて
-
【python】pandasでExcel(...
-
ASP.NETで、別サーバーへファイ...
-
web.configファイル内、valueに...
おすすめ情報