[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート部分のセルの線やフォントの書式を変えたり、シート内容を削除すると、マクロは動くが、データがペーストされない』(Kazu)
以前、マクロファイルを使って、テキストファイルのデータを、ペーストし、エクセルファイルを作成していました。しかし、最近、テキストのデータの項目が増えたので、マクロファイルのシート部分だけを、変えて、新たなマクロファイルを作成しました。しかし、そのマクロファイルは、マクロは問題なく処理するのですが、マクロのシート部分の書式フォントや破線等のデザイン
を変えると、データがペーストされません(マクロはエラーログなし)。
以下のマクロは、変えていません。シート部分を変えたことが問題なのでしょうか?
Sub Table()
Const Pathname AS String = "\\data\Text\"
Dim Bookname As String, tablename As String
Dim WS1 As Worksheet, WS2 As Worksheet
Dim i As Long, j As Integer
Application. DisplayAlerts = False
Set WS1 = Worksheets("sheet1")
tablename = "\\data\Table\"
Bookname = Dir(Pathname & "*.txt")
Do Until Bookname = ""
Workbooks. Open Pathname & Bookname
Set WS2 = Worksheets(1)
WS2.Rows("2:" & WS2. UsedRange.Rows.Count + 1).Copy
If WS1. UsedRange.Rows.Count = 1 Then
WS1.Rows(WS1.UsedRnage.Rows.Count).PasteSpecial Paste:=xlValues Else WS1.Rows(WS1.UsedRnage.Rows.Count + 1).PasteSpecial Paste:=xlValues End If Workbooks(Bookname).Close Bookname = Dir() Loop
Range("A1").Select
Range("A1:m20000").Sort
Key1:=Rnage("A1") _ , order1:=xlAscending _ , Header:=xlGuess _ , MatchCase:=False _ , Orinetation:=xlTopToBottom _ , SortMethod:=xlPinYin s = Dir(Pathname & "*A*") ss = Replace(s, "txt", ".xlsm", 1, 1, vbTextCompare) ThisWorkbook. SaveCopyAs Filename:="\\data\Table\." & ss ThisWorkbook. Sheets(1). UsedRange. ClearContents
Application.DisplayAlerts = Trure
MsgBox "the end"
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>マクロのシート部分の書式フォントや破線等のデザイン
言っている意味がよく解ってませんが、テキストとして保存しているなら、 セルの装飾文字やフォントの種類等は保存されません。 最小限のただの文字情報だけが保存されます。 だから、ファイルサイズが小さく済む。 例えば、WEbの記事をコピーしてメモ帳に張り付けた感じ。
(BJ) 2019/03/04(月) 22:27
あと、最後のほうで「Sheets(1). UsedRange」を消していますが、本当に間にスペースがあるのですか? 実はちゃんとくっついているとして、(1) は開いたブックのシートを得るときの使い方であり、自ブックの方はWS1という変数に代入しているのだし、これを使うべきでは?
まぁ、元シートがどうなっているか判らないので、ステップ実行してご自分で原因を探るしかないかと思いますよ。 WS1.UsedRnage.Rows.Count が幾つになっているか、とか気になります。
(???) 2019/03/06(水) 10:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.