ここから本文です

ExcelVBA について、ご教示願います。 D列が空白だったら、sheetを別に作成しそ...

hid********さん

2018/8/920:55:20

ExcelVBA について、ご教示願います。

D列が空白だったら、sheetを別に作成しその空白のデータをcopyしていきたいのですが、イメージがわきません。

Dim i As Long

For i = 4 To Cells(Rows.Count, 1).End(xlUp).Row
’D列が空白だったら
If Cells(i, 4) = "" Then
’F列の会社名のsheetを作成し、A列~G列までcopyする。(A3~G3:項目もcopyしたいです。)
’F列と同じ会社名のsheetがあれば、A列~G列だけをcopyしデータを追加する。
’すべてのデータの確認が終了したら、デスクトップへ各シートをExcelファイルとして
作成する(1つ1つ)


こんな流れでしょう?
VBAの組み方を是非教えて下さい。
宜しくお願い致します。

閲覧数:
44
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

vcx********さん

2018/8/921:45:45

これで良いか解りませんが、一例です。
試す場合はテスト用のブックで。

分解した会社名のSheet はこのマクロを含むブックと同じフォルダに保存します。
デスクトップに保存したいならこのマクロを含むブックをデスクトップに置いて下さい。

Sub Test()
Dim ws As Worksheet, tws As Worksheet, wb As Workbook
Dim n As Integer, i As Long

Set ws = ThisWorkbook.ActiveSheet
n = ThisWorkbook.Worksheets.Count + 1

For i = 4 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
If ws.Cells(i, 4).Value = "" Then
On Error Resume Next
Set tws = Worksheets(CStr(ws.Cells(i, 6).Value))
If tws Is Nothing Then
Sheets.Add after:=Sheets(Sheets.Count)
Set tws = Worksheets(Worksheets.Count)
tws.Name = ws.Cells(i, 6).Value
ws.Rows(3).Copy Destination:=tws.Rows(3)
End If
On Error GoTo 0
ws.Rows(i).Copy Destination:= _
tws.Rows(tws.Cells(tws.Rows.Count, 1).End(xlUp).Row + 1)
End If
Set tws = Nothing
Next i

With ThisWorkbook
For i = ThisWorkbook.Worksheets.Count To n Step -1
.Worksheets(i).Move
Set wb = ActiveWorkbook
wb.SaveAs Filename:=.Path & "\" & wb.Worksheets(1).Name, _
FileFormat:=xlWorkbookDefault
wb.Close False
Next i

End With

End Sub

  • 質問者

    hid********さん

    2018/8/1113:48:25

    ありがとうございました!
    問題なく動きました!
    すみません。宜しければ、もう少し教えて頂けませんか??
    コピーをAからGと記載しましたが!例えば、BからCとFからGにしたい場合は、どの様にすればいいでしょうか?

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/8/12 10:07:09

すみませんでした。後から、要求された内容が変わってしまって、どうして良いか分からず!
親切に教えて下さりありがとうございました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる