2015-06-22 3 views
0

Попытка взять таблицу, которую я имею в Excel 2010, и преобразовать ее в HTML. Интересно, можно ли это сделать с помощью VBA, и если бы я мог вытолкнуть код в желаемой ячейке, чтобы легко скопировать файлы вставки &.Excel 2010 Преобразование диапазона в HTML

В таблице, в которой было бы преобразование, были бы формулы, чтобы автоматически извлекать информацию с других страниц для ее создания.

+0

Я уверен, что это может быть сделано. У вас есть попытка кода? – Kyrubas

+0

Например, есть следующее: http://www.codeproject.com/Articles/15316/Excel-to-HTML-Macro – Kyrubas

+0

Вы можете выплюнуть его как простую таблицу или как скриншот, вы можете взять форматирование или макет по умолчанию.Если вы хотите динамически обновить, вы можете разработать соответствующую формулу в VBA. К сожалению, ваш набор инструментов вряд ли справится с задачей без VBA. – user3819867

ответ

0

Я понял путь вокруг этого. Вместо того, чтобы использовать код vba для преобразования выбранного диапазона в html, я пошел альтернативным путем, используя формулы и один единственный код vba.

Первое, что я сделал, это сделать лист5, после чего я взял необработанные данные html из таблицы, которую я пытался реплицировать, и разделил ее на помехи в коде, я бы ввел новую информацию. Я взял каждый кусок и вставил его в A2-K2. Затем я взял информацию, которую я вручную изменил и связал с моей книгой в A4-K4. (Они используются ссылками на ячейки на моей странице журнала, которые изменяются с каждой записью я)

В ячейке L2, я положил формулу =CONCATENATE(A2,A4,B2,B4,C2," ",C4,D2," ",D4,E2," ",E4,F2," ",F4,G2," ",G4,H2," ",H4,I2," ",I4,J2," ",J4,K2)

Это взяло каждый кусок сырого HTML и информацию из моего журнала и в сочетании он показывает полный html-код. В ячейке C11 моего листа журнала я поставлю =Sheet5!$L$2, чтобы показать данные html на моей главной странице, чтобы скопировать и вставить значение.

После этого я заметил, что excel добавит двойные кавычки ко всему, что уже было указано, и одинарные кавычки в другие области. После некоторого поиска я нашел код, который скопировал значения выбранной ячейки, чтобы я мог вставить html-код без кавычек. Вот макрос, который я использовал для этого.

Sub CopyCellContents() 
Range("C11").Select 
'create a reference in the VBE to Microsft Forms 2.0 Lib 
Dim objData As New DataObject 
Dim strTemp As String 
strTemp = ActiveCell.Value 
objData.SetText (strTemp) 
objData.PutInClipboard 
End Sub` 

У меня возникла проблема с данными, определенными пользователем. Чтобы решить эту проблему, мне пришлось выйти из отладчика кода, снова открыть модуль с помощью макроса, перейдите в Инструменты < Ссылки, затем просмотрите и введите FM20.DLL в «Имя файла:». В противном случае я не смог найти библиотеку объектов Microsoft Forms 2.0 в доступных ссылках. Я использовал сайт Chip Pearsons для макроса. cpearson.com/excel/Clipboard.aspx

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

Вот несколько снимков экрана того, что я сделал.

Это был мне нужен код для каждого листинга. и Sheet5 - это сырые данные, разбитые на ячейки.
http://i.stack.imgur.com/ATT1q.png

Вот готовый продукт, созданный этими формулами. И есть страница журнала с кнопкой. При щелчке он копирует код в поле справа без кавычек. http://i.stack.imgur.com/jh34N.png

Весь лист распространение мастер часть шахты, которая постоянно растет с различными формулами, макросы, коды и т.д. ...

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