At page 142 in the macro manual by A. Pitonyak, there is a section
about how to do it, here's a function that returns the last column of
the used area:

Function getLastUsedColumn(oSheet as Object) as Integer
  Dim oCell As Object
  Dim oCursor As Object
  Dim aAddress As Variant
  oCell = oSheet.GetCellbyPosition( 0, 0 )
  oCursor = oSheet.createCursorByRange(oCell)
  oCursor.GotoEndOfUsedArea(True)
  aAddress = oCursor.RangeAddress
  GetLastUsedColumn = aAddress.EndColumn
End Function

I am wondering about the oCell thing. Why is that necessary? I tried
the following and it seems to work:

Function getLastUsedColumn(oSheet as Object) as Integer
  Dim oCursor As Object
  Dim aAddress As Variant
  oCursor = oSheet.createCursor
  oCursor.GotoEndOfUsedArea(True)
  aAddress = oCursor.RangeAddress
  GetLastUsedColumn = aAddress.EndColumn
End Function

Or even shorter, and still works and just as easy to follow (in my opinion):

Function getLastUsedColumn(oSheet as Object) as Integer
  Dim oCursor As Object
  oCursor = oSheet.createCursor
  oCursor.GotoEndOfUsedArea(True)
  GetLastUsedColumn = oCursor.RangeAddress.EndColumn
End Function

Johnny Rosenberg

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to