选择 Range 对象的范围
Selecting range of Range object
我有一个 sheet 在 5 列中包含 5 个国家/地区的假期(每行是给定国家/地区的假期日期),我想将其用于 Application.WorksheetFunction.WorkDay
函数
Sub Func()
Dim holidays As Worksheet
Set holidays = Sheets("Holidays")
Dim lastHolidayRow As Long
lastHolidayRow = holidays.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
holi = holidays.Range("A2:E" & lastHolidayRow).Value
previous_working_day = Application.WorksheetFunction.WorkDay("19.02.2022", -1, holi(3, :))
End Sub
但我不知道如何为 WorkDay
函数选择整个第 3 列(在许多编程语言中它将是 holi(3, :)
)。
我的 lastHolidayRow
也是 select 来自 sheet 的所有数据的最佳方式吗?有些国家的假期比其他国家少,所以我 select 最后一行是否正确?
例如,如果我的日期是 01.01.2010
,那么 WorkDay
func 应该 return 02.01.2010
(它是 DD-MM-YYYY)
如果我正确理解你的问题,请尝试Range("C:C")
Sub Func()
Dim holidays As Worksheet
Dim holi as Range
Set holidays = Sheets("Holidays")
Dim lastHolidayRow As Long
lastHolidayRow = holidays.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Set holi = holidays.Range("A2:E" & lastHolidayRow)
next_working_day = Application.WorksheetFunction.WorkDay("19.02.2022", -1, holi.Range("C:C"))
End Sub
试试这个:
Sub Func()
Dim holidays As Worksheet
Set holidays = Sheets("Holidays")
Dim holi As Range
Dim previous_working_day As Date
Set holi = holidays.Range("A1").CurrentRegion
lastHolidayRow = holidays.Rows.Count
previous_working_day = Application.WorksheetFunction.WorkDay("19.02.2022", -1, holidays.Range("A2:A" & lastHolidayRow))
Set holi = Nothing
End Sub
注意 holidays.Range("A2:A" & lastHolidayRow)
的部分。这仅参考 PLN
。如果您想切换到其他国家/地区,请将 A
都更改为您想要的任何列。对于欧元,它将是 holidays.Range("C2:C" & lastHolidayRow)
等等。
我有一个 sheet 在 5 列中包含 5 个国家/地区的假期(每行是给定国家/地区的假期日期),我想将其用于 Application.WorksheetFunction.WorkDay
函数
Sub Func()
Dim holidays As Worksheet
Set holidays = Sheets("Holidays")
Dim lastHolidayRow As Long
lastHolidayRow = holidays.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
holi = holidays.Range("A2:E" & lastHolidayRow).Value
previous_working_day = Application.WorksheetFunction.WorkDay("19.02.2022", -1, holi(3, :))
End Sub
但我不知道如何为 WorkDay
函数选择整个第 3 列(在许多编程语言中它将是 holi(3, :)
)。
我的 lastHolidayRow
也是 select 来自 sheet 的所有数据的最佳方式吗?有些国家的假期比其他国家少,所以我 select 最后一行是否正确?
例如,如果我的日期是 01.01.2010
,那么 WorkDay
func 应该 return 02.01.2010
(它是 DD-MM-YYYY)
如果我正确理解你的问题,请尝试Range("C:C")
Sub Func()
Dim holidays As Worksheet
Dim holi as Range
Set holidays = Sheets("Holidays")
Dim lastHolidayRow As Long
lastHolidayRow = holidays.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Set holi = holidays.Range("A2:E" & lastHolidayRow)
next_working_day = Application.WorksheetFunction.WorkDay("19.02.2022", -1, holi.Range("C:C"))
End Sub
试试这个:
Sub Func()
Dim holidays As Worksheet
Set holidays = Sheets("Holidays")
Dim holi As Range
Dim previous_working_day As Date
Set holi = holidays.Range("A1").CurrentRegion
lastHolidayRow = holidays.Rows.Count
previous_working_day = Application.WorksheetFunction.WorkDay("19.02.2022", -1, holidays.Range("A2:A" & lastHolidayRow))
Set holi = Nothing
End Sub
注意 holidays.Range("A2:A" & lastHolidayRow)
的部分。这仅参考 PLN
。如果您想切换到其他国家/地区,请将 A
都更改为您想要的任何列。对于欧元,它将是 holidays.Range("C2:C" & lastHolidayRow)
等等。