gpt4 book ai didi

vba - 使用命令按钮将 Excel 工作表发布为 HTML 文件

转载 作者:行者123 更新时间:2023-12-04 21:02:34 26 4
gpt4 key购买 nike

所以我的工作簿中有大量数据,我需要以一种允许他们与工作簿交互的方式传递给我的用户......但也限制了他们实际可以做的事情。所以我已经做到了,这样他们就可以访问某些页面以添加所需的数据,然后我已经授予了对菜单页面的访问权限,以便他们可以运行报告。

我发现的这份报告最好是 html 页面。
为此,我尝试了几种不同的方法,另存为...并发布。我喜欢发布版本,但我一辈子都不能让它工作。我看到的所有样本似乎都是一样的。这是有问题的代码行:

ActiveWorkbook.PublishObjects.Add(xlSourceSheet, ActiveWorkbook.Path & ".htm, "Sheet1", "", xlHtmlStatic, "", "Report Title").Publish True

每次我收到运行时错误“1004”时:
对象“PublishObject”的方法“Publish”失败

我在 sub 中有上面的代码行,我错过了什么吗?我需要以不同的方式设置发布吗?感谢您的任何想法。

最佳答案

当我尝试发布时,我遇到了一个类似的神秘问题,有时它(.Publish)有效,有时却无效。

但是,我认为问题可能是,如果它不能立即工作,首先将相关区域保存为网页,以便它已经存在于服务器上。在该区域至少保存一次后(手动保存或使用 .SaveAs .. 见下文),发布可能会起作用。

这是我如何使其更一致地工作的示例,以传达对我有用的结构:

wkb=ActiveWorkbook.Name  'save wb for later access
url="http://a.com/b.htm" 'save to Internet
sheetname="c"
Sheets(sheetname).Range("d1:e2").Select 'activating sheet may be necessary
On Error Resume Next 'anticipate error to handle it
'Now comes the publish line the first time... which may work.. or not
ActiveWorkbook.PublishObjects.Add(xlSourceRange,url,sheetname,"d1:e2",xlHtmlStatic,"blah","moreblah").Publish (True) 'may fail to create page on website if page didn't already exist
theerr=Err.Number
On Error GoTo 0 'back to default error handling (none)
If theerr <> 0 Then 'if here perhaps because page nonexistent
'msgbox "maybe add warning here [FYI]"
Sheets("dummysheetwithlittleornodata").Copy 'will create workbook
On Error Resume Next
ActiveWorkbook.SaveAs url 'may fail to create webpage first time
ActiveWorkbook.saveAs url 'twice needed for some reason sometimes. [works for me]
On Error GoTo 0
'with fresh dummy html page created, now publish should hopefully work.. let's try again
ActiveWorkbook.Close savechanges:=False 'clean up and avoid popup
Workbooks(wkb).Activate 'get back to correct wkb
Sheets(sheetname).Range("d1:e2").Select
ActiveWorkbook.PublishObjects.Add(xlSourceRange,url,sheetname,"d1:e2",xlHtmlStatic,"blah","moreblah").Publish (True) 'hopefully if failed first time, now it succeeded ! good luck.
End If

上面的代码结构使我能够解决我遇到的几个发布问题。到目前为止,所有技术加在一起就足以让我将工作表中的范围保存为网页(到我具有写入权限的服务器),而无需手动执行任何操作(例如手动保存甚至单击弹出窗口)。祝你好运。

[不同的非显而易见的技术包括在尝试发布范围之前激活范围,使用错误处理方法并预测某些点的失败,2x saveas 以补偿仅使用一个 saveas 时出现的神秘的不一致故障,关闭并返回原始干净的工作簿,并使用另存为“保证”页面的形式存在,这将使发布更加一致地成功。]

关于vba - 使用命令按钮将 Excel 工作表发布为 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310742/

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