gpt4 book ai didi

excel - 为什么 Excel 是 COM 对象时 ActiveWindow.SplitColumn 不起作用?

转载 作者:行者123 更新时间:2023-12-04 20:44:03 25 4
gpt4 key购买 nike

我有一些相当古老的技术,Office Web Components (OWC)。
这意味着在我的网页上,我将 Excel 作为 OLE 对象嵌入

<object classid="clsid:0002E551-0000-0000-C000-000000000046" id="Spreadsheet1" width="1100" height="750">
<param name="DataType" value="XMLDATA" />
<param name="AllowPropertyToolbox" value="-1" />
<param name="AutoFit" value="1" />
<param name="Calculation" value="-4105" />
<param name="Caption" value="Microsoft Office-regneark" />
<param name="DisplayColumnHeadings" value="-1" />
<param name="DisplayGridlines" value="-1" />
<param name="DisplayHorizontalScrollBar" value="-1" />
<param name="DisplayOfficeLogo" value="-1" />
<param name="DisplayPropertyToolbox" value="0" />
<param name="DisplayRowHeadings" value="-1" />
<param name="DisplayTitleBar" value="0" />
<param name="DisplayToolbar" value="-1" />
<param name="DisplayVerticalScrollBar" value="-1" />
<param name="DisplayWorkbookTabs" value="1" />
<param name="EnableEvents" value="-1" />
<param name="MaxHeight" value="80%" />
<param name="MaxWidth" value="80%" />
<param name="MoveAfterReturn" value="-1" />
<param name="MoveAfterReturnDirection" value="-4121" />
<param name="RightToLeft" value="0" />
<param name="ScreenUpdating" value="-1" />
<param name="EnableUndo" value="-1" />
<!--param name="XMLURL" value="rangeirange.xml"-->
</object>
我想这并不太重要,但是我想卡住一些列,通常我可以在 JavaScript 中使用所有 VBA,但是这段代码失败了:
exlObj = document.all.Spreadsheet1;
exlObj.ActiveWindow.SplitColumn = 3;
exlObj 确实具有 ActiveWindow 属性,但它没有 SplitColumn 属性。
编辑:
现在我已经调查过了,这里是代码问题。请注意,这是 JavaScript,但它模仿 VBA,因为这就是 COM 的工作方式。
        exlObj.Sheets(1).Activate();
exlObj.ActiveWindow.FreezePanes = false;
exlObj.Sheets(1).Range('B2').Activate();
exlObj.ActiveCell.Value = 'Foo';
//exlObj.ActiveWindow.SplitRow = 10;
exlObj.ActiveWindow.FreezePanes = true; // <- this is the line
我的问题是 FreezePanes 属性始终为假,即使在最后一行之后也是如此。
像这样的属性可能有什么问题?我有一些旧代码大致相同,并且可以工作。

最佳答案

事实证明我只需要使用 Select 而不是 Activate

    exlObj.Sheets(1).Activate();
exlObj.ActiveWindow.FreezePanes = false;
exlObj.Sheets(1).Range('B2').Select(); <-- changed Activate() to Select()
exlObj.ActiveCell.Value = 'Foo';
//exlObj.ActiveWindow.SplitRow = 10;
exlObj.ActiveWindow.FreezePanes = true; // <- this is the line

关于excel - 为什么 Excel 是 COM 对象时 ActiveWindow.SplitColumn 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23777515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com