Excel 将范围转换为 HTML?Excel 2010

Excel 将范围转换为 HTML?Excel 2010

我希望获取A1:I26工作表“Desc”上的一系列内容并将其转换为 HTML。然后该 HTML 显示在工作H2表“-Listings-”上的单元格中

范围内的单元格A1:I26有一个带有我想要保留的格式的图表(即字体样式、颜色、布局)我希望它包含文本的值,而不是其背后的公式。

这是我正在做的事情的屏幕截图:

在此处输入图片描述

答案1

我找到了一个解决方法。我没有使用 VBA 代码将选定范围转换为 HTML,而是选择了使用公式和一个 VBA 代码的替代方法。

我做的第一件事是创建一个Sheet5,然后我从试图复制的表中获取原始 HTML 数据(将行映射Desc!1:16到列Sheet5!A:K)并将其拆分,在代码中插入分隔符,以便输入新信息。我取出每个块并将其粘贴到中A2:K2。然后我获取我手动更改的信息并将其链接到我的书中A4:K4。(这些是使用我的日志页面上的单元格链接,这些单元格会随着我所做的每个列表而变化。)

在单元格中L2,我输入了公式

=CONCATENATE(A2,A4,B2,B4,C2," ",C4,D2," ",D4,E2," ",E4,F2," ",F4,
                         G2," ",G4,H2," ",H4,I2," ",I4,J2," ",J4,K2)

(换行符仅用于演示)。这将获取每个原始 HTML 块和来自我的日志的信息,并将其组合起来以显示完整的 HTML 代码。在C11我的日志表的单元格中,我将=Sheet5!$L$2显示主页上的 HTML 数据复制并粘贴该值。

此后,我注意到 Excel 会为所有已加引号的内容添加双引号,为其他区域添加单引号。经过一番搜索,我找到了一些可以复制选定单元格的值的代码,这样我就可以粘贴不带引号的 HTML 代码。这是我为此使用的宏:

Sub CopyCellContents()
    Range("C11").Select
    'create a reference in the VBE to Microsft Forms 2.0 Lib
    Dim objData As New DataObject
    Dim strTemp As String
    strTemp = ActiveCell.Value
    objData.SetText (strTemp)
    objData.PutInClipboard
End Sub

我使用了 Pearson Software Consulting(即 Chip Pearson)的 在 VBA 中使用 Windows 剪贴板宏的站点。

我遇到了用户定义数据的问题。为了解决这个问题,我必须退出代码调试器,重新打开包含宏的模块,转到“工具”→“引用”,然后浏览并输入FM20.DLL“文件名:”。否则我无法在可用的引用中找到“Microsoft Forms 2.0 对象库”。

我将其分配给单元格旁边的一个按钮C11,现在,当我单击它时,代码会复制到我的剪贴板,不带引号。这并不完全按照我最初计划的方式工作,但结果正是我想要的。希望这对其他人有所帮助。

以下是我所完成的一些屏幕截图:

这是我需要每个列表的代码的地方。  Sheet5原始数据被分解成单元格。

这是使用这些公式创建的成品。这是我的带有按钮的日志页面。单击后,它会将右侧框中的代码复制到右侧,但不带引号。

相关内容