Я зрозумів, як це зробити. Замість використання коду VBA для перетворення вибраного діапазону в HTML, я пішов альтернативним маршрутом, використовуючи формули та один єдиний код VBA.
Перше, що я зробив, це зробити a Sheet5
, потім я взяв необроблені HTML-дані з таблиці, яку я намагався реплікувати (відображення рядків Desc!1:16
до стовпців Sheet5!A:K
) і розділив їх, вводячи перерви в код, якщо я ввів нову інформацію. Я взяв кожен шматок і вставив його A2:K2
. Потім я взяв інформацію, яку я вручну змінюю, і пов’язав її зі своєю книгою A4:K4
. (Вони використовують посилання на клітинки моєї сторінки журналу, які змінюються з кожним записом, який я роблю.)
У Cell 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
Я використовував Pearson Software Consulting (тобто Chip Pearson),
використовуючи буфер обміну Windows In VBA для макросу.
У мене виникли проблеми із визначеними користувачем даними. Щоб вирішити це, мені довелося вийти з налагоджувача коду, знову відкрити модуль з макросом у ньому, перейти до "Інструменти" → "Посилання", а потім перейти та ввести FM20.DLL
"Ім'я файлу:". Інакше я не зміг знайти «Microsoft Forms 2.0 Object Library» у доступних посиланнях.
Я призначив це кнопці поруч із коміркою C11
, і тепер, коли натискаю на неї, код копіюється у мій буфер обміну без лапок. Це працює не так, як я спочатку планував, але результат - саме те, чого я хотів. Сподіваюся, що це допомагає деяким іншим.
Ось кілька знімків екрана того, що я досяг:
Тут мені знадобився код для кожного переліку.
Sheet5
це необроблені дані, розбиті на клітини.
Ось готовий продукт, створений цими формулами. І є моя сторінка журналу з кнопкою. При натисканні він копіює код у вікні праворуч без лапок.