0

ヘルパー関数を使用して範囲を取得してバリアントに格納しようとしていますが、いくつかの問題が発生しています。

最初は、単に次のことを試しただけです。

Function GetRange(RangeLetter As String, Optional LastUniqueLine As Long = 1048576) As Varient
    Static LastUniqueLineStr As String
    If LastUniqueLineStr = "" Then
        LastUniqueLineStr = LastUniqueLine
    End If
    Set GetRange = Range(RangeLetter + "2:" + LastUniqueLineStr)
End Function

しかし、それはうまくいかなかったようです。 Range()ここでは範囲外のように見えたので、機能させるにはワークシートを渡す必要があると考えました。

Function GetRange(RangeLetter As String, Optional LastUniqueLine As Long = 1048576, Optional ActiveSheet As Worksheet) As Variant
    Static LastUniqueLineStr As String
    Static CurrentSheet As Worksheet
    'If CurrentSheet = Nothing Then
    Set CurrentSheet = ActiveSheet
    'End If
    If LastUniqueLineStr = "" Then
        LastUniqueLineStr = LastUniqueLine
    End If
    Set GetRange = CurrentSheet.Range(RangeLetter + "2:" + LastUniqueLineStr) ' This is the line where I get the error.
End Function

そして、それもうまくいきません。次のエラーが表示されます。

Run-time error '1004':

Method 'Range' of object 'Worksheet' failed

呼び出すときに、これから必要な範囲を取得するにはどうすればよいですか?

4

2 に答える 2