[[20221125171129]] 『特定セルの取得』(はりー) ページの最後に飛ぶ

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

 

『特定セルの取得』(はりー)

一つのフォルダにたくさんのエクセルファイルがあるのですが(おおよそ600)
そのエクセルファイルの特定セルをマクロを使用して取得できないかと考えております。いろいろサイト
を見ながらマクロを作成してはみたのですが、うまくいきません・・・
大変申し訳ありませんが、お知恵を拝借、ご教授いただければ幸いです。

特定セルはB2,B3、E2、最終行のI列のセルです

最終行I列のセルは、A列は空白セルは基本的にはなく連続数値です
また、最終行I列のセル値は、計算で求めているもので私がつくったものでは#REFと表示されてしまい、、、うまくいきません。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


現状のコードを提示されたらどうですか?
結果が得られていないものでも良いと思いますが?

(確認) 2022/11/25(金) 17:41:48


='C:\Users\user\Desktop\[特定ファイル]特定シート'!B2
='C:\Users\user\Desktop\[特定ファイル]特定シート'!B3

=COUNTA('C:\Users\user\Desktop\[特定ファイル]特定シート'!I:I)

とか書けばいいんじゃないですかね。

あ、「最終行のI列のセル」の意味が解りませんが。
(楽) 2022/11/25(金) 17:48:28


すみません

すみません

Sub フォルダ内のエクセルから特定セルを抽出()

Dim path, fso, file, files
Dim Wb As Workbook
Dim LastRow_Wb As Long
Dim Ws As Worksheet
Dim i As Long

     Set Wb = ActiveWorkbook

    path = "C:パス"

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set files = fso.GetFolder(path).files

        LastRow_Wb = 1

    Application.ScreenUpdating = False

        For Each file In files

            If fso.GetExtensionName(file) = "xlsm" Then

                Workbooks.Open (file)

                For Each Ws In Worksheets

                    If Ws.Name = "在庫管理1" Then

                                Ws.Cells(Rows.Count, 9).End(xlUp).Row

                                Wb.ActiveSheet.Cells(LastRow_Wb, 7) = file.Name

                                LastRow_Wb = LastRow_Wb + 1

                                GoTo MyJump

                    End If
                Next Ws
MyJump:

                Application.DisplayAlerts = False
                ActiveWindow.Close
                Application.DisplayAlerts = True
            End If
        Next file

    Application.ScreenUpdating = True

End Sub

(はりー) 2022/11/25(金) 17:57:59


「最終行のI列のセル」の意味が解りませんが。

行数はファイルによって異なります。
最終行、I列にあるセルという意味です。

言葉足らずで申し訳ありません。
(はりー) 2022/11/25(金) 17:59:33


=COUNTA('C:\Users\user\Desktop\[特定ファイル]特定シート'!I:I)

これで使っているセルの個数が解ります。
空白無しにられつされているという事なので

I列の使ったセルの個数が100とすれば

I100が最後のセルと言う事でした。
(楽) 2022/11/25(金) 18:23:34


test実行していませんが、参考にしてください。

 Sub フォルダ内のエクセルから特定セルを抽出()
    Dim path As String
    Dim fso As Object, file As Object, files As Object
    Dim thisSh As Worksheet
    Dim r As Long

    Dim Wb As Workbook
    Dim Ws As Worksheet

    Application.ScreenUpdating = False

    Set thisSh = ThisWorkbook.Worksheets(1) '結果書き込みシート

    path = "パス"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set files = fso.GetFolder(path).files

    r = 1
    For Each file In files
        If fso.GetExtensionName(file) = "xlsm" Then
            Set Wb = Workbooks.Open(file)
            For Each Ws In Wb.Worksheets
                If Ws.Name = "在庫管理1" Then
                    thisSh.Cells(r, 1) = file.Name
                    thisSh.Cells(r, 2) = Ws.Cells(Rows.Count, "I").End(xlUp).Value
                    'その他のセルの値も追記(省略)
                    r = r + 1
                    Exit For
                End If
            Next Ws

            Application.DisplayAlerts = False
            Wb.Close
            Application.DisplayAlerts = True
        End If
    Next file

    Application.ScreenUpdating = True
 End Sub

(確認) 2022/11/25(金) 19:58:51


ありがとうございます。

色々試してみます。
(はりー) 2022/11/25(金) 22:57:06


コメント返信:

[ 一覧(最新更新順) ]


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