首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整LotusScript范围

调整LotusScript范围
EN

Stack Overflow用户
提问于 2014-01-14 17:28:34
回答 2查看 383关注 0票数 0

在Windows 1997中使用Lotus 123 (是非常老的)

我试图在Excel中做一些非常简单的事情:偏移和调整大小。但我被困在LotusScript了。

代码语言:javascript
复制
'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

你能帮帮我吗?我正在阅读帮助文件,但找不到合适的方法使用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-19 15:33:27

我最终想出了一种复制Excel调整大小方法的方法,尽管并不完全正确。这并没有超出SrcRange的末尾,但这对我的需求来说是很好的。

代码语言:javascript
复制
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的末尾

代码语言:javascript
复制
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完全相同的功能,我想我需要这样一个单元格函数;但这也是不完整的,因为它只适用于第一个工作表。

代码语言:javascript
复制
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

希望这能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21119978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档