|
ついでに、質問の件と違うところについて。
Rngは"Sheet1"のE列ですよね
つまり、Rngは、shtとRetuに関する情報を持っているので
>Function Comb(sht As Worksheet, Rng As Range, Retu As Integer)
は、
Function Comb(Rng As Range)
でも大丈夫なはず。
修正してみました。例えば、こんな感じで。
Function Comb(Rng As Range)
Dim jyufuku As Integer
Dim i As Integer
For i = Rng.Count To 2 Step -1
'2020についてはダブリの心配なし?
jyufuku = WorksheetFunction.CountIf(Rng, Rng(i).Value)
If jyufuku > 1 Then
Rng(i).Delete Shift:=xlUp
End If
Next
End Function
そうすると、Sub Comb入力()の方は、
これだけでもよい気がします。
Sub Comb入力()
Dim Rng As Range
Const Retu = "E"
With Workbooks("Bookname.xls").Worksheets("Sheet1")
Set Rng = .Range(.Cells(4, Retu), .Cells(65536, Retu).End(xlUp))
End With
Rng(Rng.Count + 1).Value = 2020
Comb Rng
End Sub
で、こうすると、Rngにセットする際に、シート指定しているだけですが、
あとは、すべてRngを使っているので、どのシートがactiveかを気にする必要もなくなります。
|
|