人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です
いくつかのマクロを連続で実行させたいのですが
どこかのマクロでデータを削除してしまいます
どのような記述のマクロがあればそのような現象になりますか

参考
「エラーがあればsheet1に表示する」のマクロがある場合があります

Sub マクロの実行()
Call Sheets("Sheet1").main1
Call Sheets("Sheet2").main2
Call Sheets("Sheet3").main3
Call Sheets("Sheet4").main4

End Sub

よろしくお願いします

●質問者: inosisi
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

質問者から

ちなみに単独ではちゃんとマクロが実行されます


1 ● oil999
●50ポイント

1のマクロでCSVファイルを削除しているのではありませんか。


2 ● きゃづみぃ
●50ポイント

ソースの中で
last = Cells(Rows.Count, keyCol).End(xlUp).Row
というのがありますが、これは きちんと取得できてるのでしょうか?

開いたCSVの内容によって 対象となる列以外にその行より 下の行のセルにデータが入ってるとか・・・。

また、一行とか二行しかない場合も正しく取得できないおそれがあります。


inosisiさんのコメント
ありがとうございます 1だけで実行すると上手くいくのです 234だけでも上手くいきます 1234と連続するとデータが無くなってしまいます

inosisiさんのコメント
ちなみに 2のマクロは下記です Sub main2() Dim p As String '対象フォルダを指定してください。 'このフォルダに この実行用のブックは 入れないでください。 p = "C:\test\" '処理対象となる拡張子を指定して 呼び出します。 Call jikkou(p, "csv") End Sub Sub jikkou(p As String, s As String) Dim bk As Workbook Dim gg As Long Application.DisplayAlerts = False f = Dir(p & "*." & s, vbNormal) Do While f <> "" Set w = Workbooks.Open(Filename:=p & f, UpdateLinks:=False, ReadOnly:=False) '処理対象は 1番目のシートのみ。 With w.Sheets(1) .Range("A:B").Sort Key1:=.Range("B1"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal If .Range("A2") = "" Then fa = 1 Else fa = .Range("A1").End(xlDown).Row End If If .Range("B2") = "" Then fb = 1 Else fb = .Range("B1").End(xlDown).Row + 1 End If .Rows(fb & ":" & fa).Delete Shift:=xlUp .Columns("B:B").ClearContents End With w.Save w.Close f = Dir Loop Application.DisplayAlerts = True End Sub

きゃづみぃさんのコメント
.Rows(fb & ":" & fa).Delete Shift:=xlUp .Columns("B:B").ClearContents この箇所は 消去しているところですよね。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ