advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 228 for エラー値 #N/A (0.017 sec.)
エラー値 (861), #n/a (1385)
[[20180725153916]]
#score: 10842
@digest: 9cda5940a905dee6752a056bdfae638d
@id: 76908
@mdate: 2018-08-03T05:51:03Z
@size: 7119
@type: text/plain
#keywords: 105187 (22494), a505 (13096), getstring (8989), properties (7792), 行コ (7071), freefile (6294), vbnullstring (5183), 改行 (4932), extended (4899), output (3898), provider (3766), recordset (3336), 2018 (2491), テキ (2369), キス (2189), print (1472), トエ (1471), 行削 (1391), エデ (1387), seiya (1295), thisworkbook (1280), createobject (1176), 水) (1089), 削除 (1017), txt (978), 、改 (971), sample (966), open (906), コー (882), スト (878), close (866), 木) (820)
『ある範囲のセルのデータを、一つにまとめテキスト変換及び改行削除』(たけ)
ある範囲のセルのデータを、一つにまとめテキスト変換及び改行削除 マスターデータのアップロードするのにテキストで改行無しでアップしないといけません、 エクセルで作成したもの(約500行くらい)をいつのテキストにまとめて 改行をなくさないといけません。 複数セルを選択してテキストに張り付けても改行が残ってしまいますので なくした状態のテキストを作成できるものを検討しています。 *例えばA6からA505までのデーターがある感じです。 もしわかる方がおられましたらお願いします。 < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- 制御文字にも対応した置換機能のあるテキストエディタを使うことはできないのだろうか? (ねむねむ) 2018/07/25(水) 16:11 ---- マクロで全部連結してから、改行コードは文字列置換で消してしまえば良さそう。連結する方法は、最近、案が幾つか出ていたので、参考にしてみてください。[[20180723100727]] (???) 2018/07/25(水) 17:07 ---- >*例えばA6からA505までのデーターがある感じです Sub tset() Dim txt As String Open ThisWorkbook.Path & "¥Sample.txt" For Output As #1 Print #1, Join(Application.Transpose(Range("a6:a505").Value), "") Close #1 End Sub (seiya) 2018/07/25(水) 17:18 ---- seiyaさん ありがとうございます。 試してみましてファイルが出来ていました。 Rangeを広くすることができれば 汎用性が出てきますね。 一度アップしてみて問題ないか見てみますね (さる) 2018/07/25(水) 17:33 ---- 単一列で行数が65536未満で1セルの文字数が255を超えない、且つエラー値がければOKのはずです。 (seiya) 2018/07/25(水) 17:46 ---- seiyasさんすいません やってみたのですが、1セルの文字数が255を超えていますので Print #1, Join(Application.Transpose(Range("a6:a505").Value), "")のところでとまってしまいます。 また、条件が増えてしまったのですが、エラーコード (#N/A)が出ているところがありましてオートフィルターでフルターしていたのですがこの 状態だとフィルターで非表示になっているものも含まれてしまいます。 最初に言ってなくてすみません。 (たけ) 2018/07/25(水) 18:19 ---- それなら Sub test() Dim cn As Object, rs As Object Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") With cn .Provider = "Microsoft.Ace.OLEDB.12.0" .Properties("Extended Properties") = "Excel 12.0;HDR=No;IMEX=1;" .Open ThisWorkbook.FullName End With rs.Open "Select F1 From [Sheet1$A5:A50000] Where F1 Is Not Null And Not IsError(f1)", cn Open ThisWorkbook.Path & "¥sample.txt" For Output As #1 Print #1, rs.GetString(, , "") Close #1 Set cn = Nothing: Set rs = Nothing End Sub (seiya) 2018/07/25(水) 19:21 ---- seiyaさん有りがとうございます。 データを作成しましてアップしたのですがエラーがあったので確認しましたら、 作成したテキストをエクセルで見ると改行が削除されていないみたいでした 14562422347614 105187 14562422347621 105187 14562422347638 105187 とセルが分かれてる感じでした 以下の様に1つのセルに入るようにしたいです。 14562422347614 10518714562422347621 10518714562422347638 105187 もしよろしければまた検討お願いします。 (たけ) 2018/07/26(木) 12:04 ---- 無理やり... Sub test() Dim cn As Object, rs As Object, txt As String Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") With cn .Provider = "Microsoft.Ace.OLEDB.12.0" .Properties("Extended Properties") = "Excel 12.0;HDR=No;IMEX=1;" .Open ThisWorkbook.FullName End With rs.Open "Select F1 From [Sheet1$A5:A50000] Where F1 Is Not Null And Not IsError(f1)", cn With CreateObject("VBScript.RegExp") .Global = True .Pattern = "[¥r¥t¥n¥f]" txt = .Replace(rs.GetString(2, , vbNullString, vbNullString, vbNullString), "") End With Open ThisWorkbook.Path & "¥sample.txt" For Output As #1 Print #1, txt; Close #1 Set cn = Nothing: Set rs = Nothing End Sub (seiya) 2018/07/26(木) 12:50 ---- 以下のような流れでは問題あるだろうか? 1セル読んで改行なしで書き込みをループする。 Sub a() Dim FILE_NO As Integer Dim ROW_CNT As Integer FILE_NO = FreeFile Open "C:¥WK¥TST.TXT" For Output As FILE_NO ROW_CNT = 1 Do Until Cells(ROW_CNT, "A") = "" Print #1, Cells(ROW_CNT, "A").Value; ROW_CNT = ROW_CNT + 1 Loop Close #1 End Sub (ねむねむ) 2018/07/26(木) 13:25 ---- 横からですけど、 >以下の様に1つのセルに入るようにしたいです。 セルにいれるんですか?最初の質問ですと、テキストファイルに書き出したいというような質問だったとおもいますが・・・・ ところで、ねむねむさんや、???さんが提案されている改行コードを削除する案はダメなんでしょうか?結果が気になるので、好みでないならどんなところがダメで不採用なのか報告すると良いかもです。 また、???さんが紹介されているリンク先で、私がFor each 〜 Nextステートメント使って、結合する案を提示してますので、そちらをご覧頂いているのであれば、以下のようなコードが組めると思いますがもう実験済みでしょうか? Sub test() Dim tmp As Range Dim buf As String For Each tmp In Range("A6:A505") buf = buf & tmp.Value Next tmp Open ThisWorkbook.Path & "¥Sample.txt" For Output As #1 Print #1, buf Close #1 End Sub 理屈でいえば、約20億文字くらいまでは、String型の変数に格納できるっぽいので事足りませんか? http://excelvba.pc-users.net/fol5/5_2.html (もこな2) 2018/07/26(木) 17:16 ---- もこな2さん、改行コードを削除は???さんとseiyaさん。 私のは書き込み時に改行コードを入れない方法。 だから私のはセル内に改行があればNG。 (ねむねむ) 2018/07/26(木) 17:21 ---- >もこな2さん、改行コードを削除は???さんとseiyaさん。 あ〜ややこしくてすみません。 訳あって昼に書いた物を時間たってから投稿したので変なことになってしまいました。 自分が言いたかったのは、 ・(ねむねむ) 2018/07/25(水) 16:11のテキストエディタ上で改行コードを削除する案 ・(???) 2018/07/25(水) 17:07のマクロを使ってメモリ上?で改行コードを削除する案 のことを言いたかったんです。 seiyaさんのは、私のスキルだと外部オブジェクトや Evaluateメソッドを多用した複雑なコードはよく理解できないので、改行コードを削除してるのか、そうで無いのかわからず言及できなかったんです・・orz あと、上記とは関係ないですが、ねむねむさんの2018/07/26(木) 13:25のコード、せっかく「FILE_NO = FreeFile」してるのに途中から「#1」になっちゃってる気が・・・これって「#FreeFile」じゃないですか?(勘違いだったら誠にすみません) (もこな2) 2018/07/26(木) 19:38 ---- もこな2さん。 >せっかく「FILE_NO = FreeFile」してるのに途中から「#1」になっちゃってる気が・・・ 切り貼りでテストコード組んでエラー出ないからときちんとチェックせずに書き込んでしまった。 お言葉通り、#1は#FreeFileです。 ご指摘ありがとうございます。 (ねむねむ) 2018/07/27(金) 09:16 ---- seiyaさん連絡遅くなり申し訳ありません。 システムに確認に時間がかかりまして本日 確認できました。 問題なく取込がいけました。 ありがとうございました。 また何かわからないことがありましたらよろしくお願いします。 以上 (さる) 2018/08/03(金) 14:51 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201807/20180725153916.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97038 documents and 608037 words.

訪問者:カウンタValid HTML 4.01 Transitional