Probleme mit PasteSpecial in VBA 2010 -VBA 2003 ok
22.05.2013 10:55:26
Florian
habe ein Problem mit Pastespecial in Excel 2010. Wenn die gleiche Makro in Excel 2003 aufgerufen wird läuft alles ohne Probleme durch, in 2010 kommt die Fehlermeldung "PasteSpecial Method of Range class failed" - Error type 1004.
Bei der Makro handelt es sich dabei um eine Funktion, die aus einem externen Workbook heraus aufgerufen wird.
Hat jemand von Euch eine Idee, wo der Fehler stecken könnte? Bin dankbar für jede Hilfe ;)
Vielen Dank schonmal im Voraus.
Florian
Hier die Funktion:
Function RangetoHTML(rng As Range)
Dim Fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
Dim iTemp As Integer, iLastRowTemp As Integer
TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
rng.Copy
Set TempWB = Workbooks.Add(1)
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8 '***HIER DEBUG IN EXCEL 2010!!
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).SpecialCells(xlCellTypeVisible).Select
.Name = "HTML_ME"
Application.CutCopyMode = False
On Error GoTo 0
End With
With TempWB.PublishObjects.Add(SourceType:=xlSourceRange, Filename:=TempFile, Sheet:="HTML_ME", _
_
Source:=TempWB.Sheets(1).UsedRange.Address, HtmlType:=xlHtmlStatic)
.Publish (True)
End With
Set Fso = CreateObject("Scripting.FileSystemObject")
Set ts = Fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", "align=left x:publishsource= _
_
")
TempWB.Close savechanges:=False
Kill TempFile
Set ts = Nothing
Set Fso = Nothing
Set TempWB = Nothing
End Function