[[20160623103957]] 『vba セルにCOUNTIFを入力する際の範囲の指定など』(鮭) ページの最後に飛ぶ

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

 

『vba セルにCOUNTIFを入力する際の範囲の指定など』(鮭)

下記マクロにおいて、
dstSheet1~3からdstSheet4に必要な情報を転記し、
転記されたdstSheet4のJ列の内容が、同SheetのB列と同じものがあるかをN列でチェックしたいです。
B列は6~databaseRow、J列は6~lastRow3までです。
マクロ非使用ならば、N6に=COUNTIF($B$6:$B$100,$J6)と入力しますが、(100は例)
B列もJ列も最終行が可変でどのようにしたらよいか分かりません。
どなたかご教授お願いいたします。

Private Sub 提出チェック_Click()

    Dim dstSheet1 As Worksheet
    Dim dstSheet2 As Worksheet
    Dim dstSheet3 As Worksheet
    Dim dstSheet4 As Worksheet
    Dim databaseRow As Long
    Dim lastRow1 As Long
    Dim lastRow2 As Long
    Dim lastRow3 As Long
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim l As Integer

        Set dstSheet1 = ThisWorkbook.Sheets("嘱託・契約")
        Set dstSheet2 = ThisWorkbook.Sheets("パート社員 (社保非加入)")
        Set dstSheet3 = ThisWorkbook.Sheets("パート社員(社保加入)")
        Set dstSheet4 = ThisWorkbook.Sheets("提出チェック")

        Unload ActionSelection
        Application.ScreenUpdating = False

        For i = 6 To dstSheet1.Cells(Rows.Count, "B").End(xlUp).Row

            dstSheet4.Cells(i, 10).Value = dstSheet1.Cells(i, 2).Value
            dstSheet4.Cells(i, 11).Value = dstSheet1.Cells(i, 3).Value
            dstSheet4.Cells(i, 12).Value = "嘱託or契約"
            dstSheet4.Cells(i, 13).Value = dstSheet1.Cells(i, 20).Value

        Next i

        lastRow1 = dstSheet4.Cells(Rows.Count, "J").End(xlUp).Row

        For j = 6 To dstSheet2.Cells(Rows.Count, "B").End(xlUp).Row

            dstSheet4.Cells(lastRow1 + j - 5, 10).Value = dstSheet2.Cells(j, 2).Value
            dstSheet4.Cells(lastRow1 + j - 5, 11).Value = dstSheet2.Cells(j, 3).Value
            dstSheet4.Cells(lastRow1 + j - 5, 12).Value = "パート(非)"
            dstSheet4.Cells(lastRow1 + j - 5, 13).Value = dstSheet2.Cells(j, 13).Value

        Next j

        lastRow2 = dstSheet4.Cells(Rows.Count, "J").End(xlUp).Row

        For k = 6 To dstSheet3.Cells(Rows.Count, "B").End(xlUp).Row

            dstSheet4.Cells(lastRow2 + k - 5, 10).Value = dstSheet3.Cells(k, 2).Value
            dstSheet4.Cells(lastRow2 + k - 5, 11).Value = dstSheet3.Cells(k, 3).Value
            dstSheet4.Cells(lastRow2 + k - 5, 12).Value = "パート(加)"
            dstSheet4.Cells(lastRow2 + k - 5, 13).Value = dstSheet3.Cells(k, 15).Value

        Next k

        databaseRow = dstSheet4.Cells(Rows.Count, "B").End(xlUp).Row
        lastRow3 = dstSheet4.Cells(Rows.Count, "J").End(xlUp).Row

	For l = 6 to lastRow3

            dstSheet4.Cells(l, 14).Formula = "=COUNTIF(...)"

	Next l

        Application.ScreenUpdating = False

End Sub

< 使用 Excel:Excel2010、使用 OS:Windows8 >


こんにちは

	For l = 6 to lastRow3
            dstSheet4.Cells(l, 14).Formula = "=COUNTIF(...)"
	Next l


        dstSheet4.Range("N6:N" & lastRow3).Formula = "=COUNTIF($B$6:$B$" & lastRow3 & ",$J6)"

に差し替えるとか。
(ウッシ) 2016/06/23(木) 11:29


こんにちは、コメントありがとうございます。
ForNext使おうと思いすぎていました。
&でシンプルに繋ぐのが良いですね、盲点でした。
ありがとうございました。解決しました。
(鮭) 2016/06/23(木) 11:43

コメント返信:

[ 一覧(最新更新順) ]


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