在Windows 1997中使用Lotus 123 (是非常老的)
我试图在Excel中做一些非常简单的事情:偏移和调整大小。但我被困在LotusScript了。
'this works fine in Excel
Dim ws As Worksheet
Dim rg As Range
Set ws = ThisWorkbook.Worksheets(1)
Set rg = ws.Range("MyRange").Offset(0, 1)
Set rg = rg.Resize(rg.Rows.Count, rg.Columns.Count - 1)
'how to complete this in LotusScript?
Dim DocLotus As Lotus123.Document
Set DocLotus ...
Dim rg As Lotus123.Range
Set rg = DocLotus.Ranges("MyRange")
'offset one column to the right
'resize one column less你能帮帮我吗?我正在阅读帮助文件,但找不到合适的方法使用。
发布于 2014-01-19 15:33:27
我最终想出了一种复制Excel调整大小方法的方法,尽管并不完全正确。这并没有超出SrcRange的末尾,但这对我的需求来说是很好的。
Function Resize(SrcRange As Range, ByVal RowCount As Integer, ByVal ColumnCount As Integer) As Range
'this function resizes the range but cannot go beyond the end of SrcRange
Dim StartCell As Range
Dim EndCell As Range
Set StartCell = SrcRange.cell(0, 0)
Set EndCell = SrcRange.cell(RowCount - 1, ColumnCount - 1)
Dim LeftAddr As String
Dim RightAddr As String
LeftAddr = Left(StartCell.CoordinateString, InStr(StartCell.CoordinateString, "..") + 1)
RightAddr = Left(EndCell.CoordinateString, InStr(EndCell.CoordinateString, "..") - 1)
Dim NewRange As Range
Set NewRange = SrcRange.Parent.Ranges(LeftAddr & RightAddr)
Set Resize = NewRange
End Function下面是OffSet方法,但是它不会超出SrcRange的末尾
Function OffSet(SrcRange As Range, ByVal byRow As Integer, ByVal byColumn As Integer) As Range
'this function offsets the beginning of the range but does not go beyond the end of SrcRange
Dim StartCell As Range
Dim EndCell As Range
Set StartCell = SrcRange.Cell(byRow, byColumn)
Set EndCell = SrcRange.Cell(SrcRange.EndRow - SrcRange.StartRow, SrcRange.EndColumn - SrcRange.StartColumn)
Dim LeftAddr As String
Dim RightAddr As String
LeftAddr = Left(StartCell.CoordinateString, InStr(StartCell.CoordinateString, "..") + 1)
RightAddr = Left(EndCell.CoordinateString, InStr(EndCell.CoordinateString, "..") - 1)
Dim NewRange As Range
Set NewRange = SrcRange.Parent.Ranges(LeftAddr & RightAddr)
Set OffSet = NewRange
End Function要将这些功能扩展到与Excel完全相同的功能,我想我需要这样一个单元格函数;但这也是不完整的,因为它只适用于第一个工作表。
Function Cells(RowNum As Long, ColNum As Long)
Dim rg As Range
Set rg = CurrentDocument.Ranges("A:A1..A:IV8192")
Set rg = rg.Cell(RowNum - 1, ColNum - 1)
Set Cells = rg
End Function希望这能帮上忙。
发布于 2014-01-18 23:21:23
我不知道,但我认为搜索莲花123的论坛会有帮助(是的,论坛还在那里)。
http://www-10.lotus.com/ldd/ssforum.nsf/SortedAllThreadedweb?OpenView&ExpandView&RestricttoCategory=1-2-3
也许你是在追求这个:http://www-10.lotus.com/ldd/ssforum.nsf/55c38d716d632d9b8525689b005ba1c0/83d603bad276a3e185256cb5001110d7?OpenDocument
https://stackoverflow.com/questions/21119978
复制相似问题