[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストファイルを作るコードで』(ペンギン男爵)
以前、こちらでテキストファイルを自動で作るコードを教えて頂きました。
作業がすごく早くなり、とても助かっていたのですがA列が1行の場合だけ
上手くいかないことが分かりました。
この三行が黄色くなり
.SaveAs _ Filename:="g:\test\" & MyRNG.Value & ".txt", _ FileFormat:=xlText 実行時エラー '1004': 'SaveAs' メソッドは失敗しました: '_Worksheet' オブジェクト と表示されます。 調べてみても、ファイルパスが間違ってないかとかしか出て来ず (調べ方が悪いのかもしれません)とても不思議です。 2行以上だと出ないので、あまり影響がないのですが、 気になりますので、分かる方がおられたら教えていただけませんか?
使用しているコードです。
Sub テキストファイル作成()
Dim MyRNG As Range With ThisWorkbook.Worksheets("Sheet1") For Each MyRNG In .Range(.Range("A1"), .Range("A1").End(xlDown)) .Range("C1").Value = MyRNG.Value .Range("D1:D10").Copy With Workbooks.Add .Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues Application.DisplayAlerts = False .SaveAs _ Filename:="g:\test\" & MyRNG.Value & ".txt", _ FileFormat:=xlText .Close Application.DisplayAlerts = True End With Next MyRNG Application.CutCopyMode = False End With End Sub
< 使用 Excel:Excel2007、使用 OS:Windows7 >
>For Each MyRNG In .Range(.Range("A1"), .Range("A1").End(xlDown)) つぶさに読んでないですけど、1行しかない可能性があるのに「xlDown」は無いんじゃないですか?
普通は、最下行から「xlUp」ですけどねぇ・・・
まぁ、それでも旨く行くと言う保証はないですけどね(空白がサンドイッチの場合なんか)
こんなのでどうですか? ↓ For Each MyRNG In .Range("A1", IIf(IsEmpty(.Range("A2").Value), .Range("A1"), .Range("A1").End(xlDown)))
(半平太) 2018/06/20(水) 21:00
又は、空白でループを抜けるとか
For Each MyRNG In .Range(.Range("A1"), .Range("A1").End(xlDown)) If MyRNG.Value = "" Then Exit For '<---これ .Range("C1").Value = MyRNG.Value (seiya) 2018/06/20(水) 21:40
もともと、前回の掲示板でお聞きしたのが10から〇〇行ありますと説明していたので
何の問題もなく動いていた様です(汗
エラー部分ばかり見ていたのですが、原因は全然別のところにあったのですね。。
半平太さんのコードは残念ながら同じエラーになりましたがseiyaさんのコードで
上手く行きました!
ありがとうございました。
(ペンギン男爵) 2018/06/22(金) 12:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.