[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.