2017-07-19 58 views
0

在嵌入式Excel工作簿中工作时,出现PasteSpecial功能问题。我正在使用的程序是“Promax”,它是在Visio中运行的块图表软件,可以选择添加嵌入式Excel工作簿。我基本上在Excel中设置了许多单元格,以便可以将一堆字段导入到PDF表单中。粘贴特殊VBA在嵌入式Excel工作簿中不起作用

在嵌入式工作簿中工作时,我无法使用此函数将任何输出提供给新的Excel工作表。如果我保存promax以外版本的工作簿,代码运行良好。如果我只是尝试粘贴,而不是粘贴特殊的代码工作正常,但我粘贴的所有引用中断在新的工作簿。

Sub ExporttotxtFile() 
Dim wb As Workbook 
Dim saveFile As String 
Dim WorkRng As Range 
On Error Resume Next 
Set WorkRng = Sheets("Sheet1").Range("A1:HK2") 
Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
Set wb = Application.Workbooks.Add 
WorkRng.Copy 
wb.Worksheets(1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
wb.Worksheets(1).Range("A1").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
saveFile = Application.GetSaveAsFilename(InitialFileName:="Export", fileFilter:="Text Files (*.txt), *.txt") 
wb.SaveAs Filename:=saveFile, FileFormat:=xlText, CreateBackup:=False 
wb.Close 
Application.CutCopyMode = False 
Application.DisplayAlerts = True 
Application.ScreenUpdating = True 
End Sub 

有没有人有解决这个或其他方法来完成这项工作?此代码取自:https://www.extendoffice.com/documents/excel/612-excel-export-data-to-text.html

谢谢!

+0

如果启用_ScreenUpdating_和_DisplayAlerts_,会发生什么情况? ...如果你使用'wb.Worksheets(1).PasteSpecial xlPasteValuesAndNumberFormats' – jsotola

+0

你可以消除一个_PasteSpecial_行你好,欢迎来到Stack Overflow,请花一些时间来完成[欢迎导览](https:// stackoverflow。 com/tour)了解你在这里的方式(并获得第一张徽章),阅读如何创建[最小,完整和可验证的示例](https://stackoverflow.com/help/mcve),并检查[如何提出好问题](https://stackoverflow.com/help/how-to-ask),以便增加获得反馈和有用答案的机会。 – DarkCygnus

+0

也请不要在你的代码中使用'.Select .... Selection.'表单如果你能帮到它。使用您在第一个_PasteSpecial_行中使用的格式。原因:'选择'指的是即使在程序运行时你碰巧点击或选择的任何单元格或范围。想想如果你做了长时间的计算,碰巧点击鼠标或触摸触摸屏(如果你碰巧有触摸屏)会发生什么。 – jsotola

回答

0

虽然玩这个更多,它似乎像xlPasteFormat粘贴图像上的值而不是格式。我放弃了pastespecial方法并使用了不同的解决方案。

wb.Worksheets(1).Paste 
    wb.Worksheets(1).Range("A1:HK2").Value = WorkRng.Value 

我用第一个粘贴粘贴所有内容,并使用第二行设置值,以便格式保持不变。

感谢大家的帮助。

相关问题