Excelfunction打破了
我怎么能得到以下function工作?
Public Function DataRange(Somesheet as String, Optional StartCell as String) as Excel.Range If StartCell = "" Then DataRange =ThisWorkbook.Sheets( Somesheet).Range( ThisWorkbook.Sheets( Somesheet)_ .Cells(1,1).End(xldown),ThisWorkbook.Sheets(Somesheet).Cells(1,1).End(xlright)) Else DataRange = ThisWorkbook.Sheets(Somesheet).Range(ThisWorkbook.Sheets(Somesheet)_ .Range(Startcell).End(xldown),ThisWorkbook.Sheets(Somesheet).Range(Startcell).End(xlright)) End If End Function
Public Function DataRange(Somesheet as String, _ Optional StartCell as String = "A1") as Excel.Range With ThisWorkbook.Sheets(Somesheet) Set DataRange = .Range(.Range(Startcell).End(xldown), _ .Range(Startcell).End(xltoright)) End With End Function
注意: xlToRight
不是xlRight
用法:
Dim rng Set rng = DataRange("Sheet1") 'uses default A1 as top-left cell Set rng = DataRange("Sheet1", "E10") 'uses E10
这也可能工作:
ThisWorkbook.Sheets(Somesheet).Range(Startcell).CurrentRegion
我假设你的If StartCell = ""
不起作用。 更改Startcellvariables是一个变体,这将允许您使用ismissing
函数来检查是否已通过,并分配您自己的默认值,如果它没有。 IsMissing只适用于不同的数据types。 如果需要,在将parameter passing给函数时使用Cvar()