[[20190304203937]] 『シート部分のセルの線やフォントの書式を変えたり』(Kazu) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シート部分のセルの線やフォントの書式を変えたり、シート内容を削除すると、マクロは動くが、データがペーストされない』(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


返信ありがとうございます。すみません言葉足らずですみません。
具体的に言うと、テキストファイルのデータを、マクロファイルのシート1に張り付けて、シート2において、そのシート1のデータをもとに、ifなどの構文を使って、データを変えて、最終的に、シート3に最終的なデータを表としてつくります。
シート2で、シート1のデータを引っ張ってくる際に=Sheet1!A1のところを一部変えています。
シート3の表で、フォントや表の線の書式を変えました。
(Kazu) 2019/03/05(火) 00:14

UsedRangeプロパティは、セルの値だけでなく、書式を変えただけのセルでも反応しますが、これは想定通りですか?(実はシートのかなり下の方に貼られていたのに気づかず…、とか?)

あと、最後のほうで「Sheets(1). UsedRange」を消していますが、本当に間にスペースがあるのですか? 実はちゃんとくっついているとして、(1) は開いたブックのシートを得るときの使い方であり、自ブックの方はWS1という変数に代入しているのだし、これを使うべきでは?

まぁ、元シートがどうなっているか判らないので、ステップ実行してご自分で原因を探るしかないかと思いますよ。 WS1.UsedRnage.Rows.Count が幾つになっているか、とか気になります。
(???) 2019/03/06(水) 10:37


あと、Kazuさんという名前は、この掲示板を作り、管理している方の名前なので、次からは別名にすべきですね。
(???) 2019/03/06(水) 10:41

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.