Excel – 从条件格式的其他工作簿完整复制

我已经弄清了大部分这个,但挂我的部分是能够粘贴条件格式。

我希望能够打开工作簿,运行VBA脚本来打开另一个工作簿,从中复制范围,然后将其粘贴到原始工作簿。

我得到的最成功的是录制macros,并做到这一点:与原来的目标工作簿打开…

  1. 打开源工作簿
  2. 复制范围A1:X105
  3. closures源工作簿
  4. 粘贴到目标工作簿中标题为“Temp”的工作表中

问题是,源工作簿包含条件格式,并且如果在粘贴到目标工作簿之前closures源工作簿,条件格式不被粘贴。

因此,无论我需要find一种方法来粘贴条件格式的数据,或者我需要能够closures源工作簿之前切换回目标工作簿。 这是一个需要使用不同的目标工作簿多次运行的进程,所以VBA代码无法引用目标的工作簿文件名。 源工作簿将始终具有相同的path。

search网站,我只能find指定两个工作簿的path的解决scheme。

这就是我现在所拥有的:

Sub CopyData() Application.DisplayAlerts = False Workbooks.Open filename:="source.xlsx", _ UpdateLinks:=3 Range("A1:X105").Select Selection.Copy ActiveWindow.Close Sheets("Temp").Select ActiveSheet.Paste Application.DisplayAlerts = True End Sub 

我想我需要实现的是将目标工作簿声明为一个variables。 有人可以帮助吗?

您可以调暗工作簿,然后复制并粘贴。 完成之后,您可以使用该variables,closures工作簿。 代码如下:

 Sub CopyData() Application.DisplayAlerts = False Dim wbSource As Workbook Set wbSource = Workbooks.Open(Filename:="source.xlsx", UpdateLinks:=3) wbSource.Sheets(1).Range("A1:X105").Copy ThisWorkbook.ActiveSheet.Selection.Paste wbSource.Close Application.DisplayAlerts = True End Sub 

我不明白你如何确定你粘贴在目标工作簿上的范围,但是会留下另一个问题。 艾米莉·奥尔登的回答我不认为会工作,因为你不能从一个closures的来源复制。 与其他应用程序相比,剪贴板的行为与Excel不同。

基于新的信息:

 Sub CopyData() Application.DisplayAlerts = False Workbooks.Open filename:="source.xlsx", _ UpdateLinks:=3 Range("A1:X105").Select Selection.Copy ActiveWindow.Close Sheets("Temp").Select ActiveSheet.PasteSpecial xlPasteFormats Application.DisplayAlerts = True End Sub 

上一页:发件人: 使用VBA将条件格式从一个单元格复制到另一个单元格?

 Sub test() Sheets("B").[B1].Copy: Sheets("A").[A1:A10].PasteSpecial xlPasteFormats End Sub 

是一个将粘贴条件格式的代码。

大部分你需要做的是改变顺序:

  1. 使用提示让用户select文件

  2. 从源复制范围

  3. 将范围粘贴到原始
  4. closures来源