Option
Explicit
Public
Sub
Demo()
Dim
rngT
As
Excel.Range
Dim
rngR
As
Excel.Range
If
GetDateRange(
"2018-05-05"
,
"2018-05-10"
, rngR, rngT)
Then
rngT.Columns.Hidden =
True
rngR.Columns.Hidden =
False
Call
Application.Goto(rngR(1),
True
)
Else
Debug.Print Format$(Time,
"\#hh:mm:ss\#"
); Spc(2);
"GetDateRange() - invalid date range"
End
If
End
Sub
Public
Function
GetDateRange(
ByVal
StartDate
As
Date
,
ByVal
EndDate
As
Date
,
ByRef
DRange
As
Excel.Range,
Optional
ByRef
TRange
As
Excel.Range)
As
Boolean
Const
C_WKS_NAME
As
String
=
"Tabelle1"
Const
C_RNG_STR
As
String
=
"T16:TZ16"
If
StartDate > EndDate
Then
Exit
Function
Dim
rng
As
Excel.Range
Dim
rngRange
As
Excel.Range
Set
rng = Worksheets(C_WKS_NAME).Range(C_RNG_STR)
Set
rngRange = rng(1).Offset(ColumnOffset:=DateDiff(
"d"
,
CDate
(rng(1)), StartDate))
Set
rngRange = rngRange.Resize(ColumnSize:=1 + DateDiff(
"d"
, StartDate, EndDate))
Set
TRange = rng
Set
DRange = rngRange
GetDateRange =
True
End
Function