2015-05-31 12 views
1

Я пытаюсь экспортировать диапазон («A1: C10») из листа Sheet1 в HTML и сохранить его в том же каталоге, что и текущей книги. Я также хочу сохранить исходное форматирование.Экспорт определенного диапазона в HTML

Я использую следующий код, но получаю ошибки, и я не могу определить папку назначения как ту же папку, в которой находится текущая рабочая книга.

Sub Export() 
Dim rng As Range 

Set rng = Sheets("Sheet1").Range("A1:C10") 
ActiveWorkbook.PublishObjects.Add(_ 
SourceType:=xlSourceRange, _ 
Filename:=file1, _ 
sheet:="Sheet1", _ 
Source:=rng, _ 
HtmlType:=xlHtmlStatic).Publish 

End Sub 

Я также попытался это:

Sub Export() 
Dim rng As Range 


Set rng = Sheets("sheet1").Range("A1:C10") 
ActiveWorkbook.PublishObjects.Add(_ 
SourceType:=xlSourceRange, _ 
fileName:="C:\exported.xlsx", _ 
Sheet:="Sheet1", _ 
Source:=rng, _ 
HtmlType:=xlHtmlStatic).Publish 

End Sub 
+0

Как установить значение file1 в коде 'Filename: = file1'? – ChipsLetten

+0

"Я получаю ошибки"? КОТОРАЯ/ГДЕ? – pnuts

ответ

2

Source:= рассчитывает значение строки с адресом в диапазоне, а не Range объекта.

Путь к книге, содержащей макрос, можно получить с помощью ThisWorkbook.Path.

Sub Export() 
Dim rng As Range 

file1 = ThisWorkbook.Path & "\" & "test.html" 

Set rng = Sheets("Tabelle1").Range("A1:C10") 

ActiveWorkbook.PublishObjects.Add(_ 
SourceType:=xlSourceRange, _ 
Filename:=file1, _ 
Sheet:=rng.Worksheet.Name, _ 
Source:=rng.Address, _ 
HtmlType:=xlHtmlStatic).Publish 

End Sub 
Смежные вопросы