gpt4 book ai didi

excel - 在 Excel 中复制范围时 PasteSpecial 不保留源格式

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

我正在将现有工作簿中的一系列单元格复制到临时工作簿中,并希望保留源工作簿的确切格式。
我正在使用 Ron de Bruin 的 RangetoHTML 函数的修改版本。

目的是将源工作簿中的范围复制到邮件正文。

但是,当我运行宏时,它只会将邮件中的范围粘贴到不同格式的值中(请参见下面的链接)。 PasteSpecial 的所有其他粘贴类型要么失败,要么给出相同的结果。

我已经尝试了 PasteSpecial 方法的每种粘贴类型,但没有成功。

如果我尝试为 PasteSpecial 函数指定更多参数,则会引发 1004 错误(尽管我不需要使用默认值以外的任何东西)。

源工作簿已合并单元格,但我尝试删除合并的单元格,但这并没有改变输出。

此代码被多次调用,因为我想插入来自不同工作簿的范围。结果始终是正确的范围,但没有格式。

当我试图从表单运行此脚本时,它是从 Access 运行的。它位于公共(public)模块中,并在另一个模块中创建邮件正文时调用。
以下是删除评论时引发错误的部分摘录:

Public Function RangetoHTML(rng As Range)
' Changed by Ron de Bruin 28-Oct-2006

Dim xlApp As Excel.Application
Dim TempWB As Excel.workbook

Set TempWB = xlApp.Workbooks.Add(1)
rng.Copy 'This is passed as an argument of the RangetoHTML function
TempWB.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValues ', Operation:=-4142, SkipBlanks:=True, Transpose:=False
TempWB.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteFormats ', Operation:=-4142, SkipBlanks:=True, Transpose:=False
TempWB.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteColumnWidths ', Operation:=-4142, SkipBlanks:=True, Transpose:=False

'The rest is similar to the original version of RangetoHTML

'Close TempWB
TempWB.Close savechanges:=False
xlApp.Quit

Set TempWB = Nothing
Set xlApp = Nothing

End Function

我希望邮件正文中显示的范围与源工作簿中的范围相同。

尽管我进行了所有尝试,但我似乎找不到此代码会阻止复制格式的任何问题。

编辑 :

如果我换行:
Set TempWB = xlApp.Workbooks.Add(1)

至 :
Set TempWB = Workbooks.Add(1)

那么输出格式正确,但是在 sub 结束后,有一个 Excel 实例在任务管理器中保持打开状态。

编辑 2:

这里有一些截图可以帮助解释这个问题(敏感信息模糊)。

这是我期待的输出:
Correct output

这是我使用上面提供的代码时得到的实际结果:
What I got

我检查了粘贴表格的临时文件的内容,格式与粘贴在邮件正文中的内容相同。这告诉我 PasteSpecial是这里的罪魁祸首,而不是 RangetoHTML 函数的其余部分。

编辑 3:

我也尝试使用普通的 Paste函数,我得到了与上图相同的结果:
rng.Copy
TempWB.Worksheets(1).Paste

PasteSpecial无论我提供哪些论点,实际上什么都不做。

最佳答案

您需要使用 xlPasteAllxlPasteAllUsingSourceTheme如果要保留格式,请使用值。见 XlPasteType enumeration .

关于excel - 在 Excel 中复制范围时 PasteSpecial 不保留源格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57076799/

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