Я нашел способ обойти это. Вместо того чтобы использовать код VBA для преобразования выбранного диапазона в HTML, я пошел альтернативным путем, используя формулы и один единственный код VBA.
Первым делом я сделал Sheet5
, затем я взял необработанные данные HTML из таблицы, которую пытался реплицировать (отображение строк Desc!1:16
в столбцы Sheet5!A:K
) и разделил это, вставив разрывы в код, где бы я вводил новую информацию. Я взял каждый кусок и вставил его в 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
Я использовал Pearson Software Consulting (т. Е. Chip Pearson) для макроса, используя сайт буфера обмена Windows In VBA .
Я столкнулся с проблемой пользовательских данных.
Чтобы решить эту проблему, мне пришлось выйти из отладчика кода, снова открыть модуль с макросом, перейти в «Инструменты» → «Ссылки», а затем просмотреть и ввести FM20.DLL
в «Имя файла:».
В противном случае я не смог бы найти «Библиотеку объектов Microsoft Forms 2.0» в доступных ссылках.
Я назначил это кнопке рядом с ячейкой C11
, и теперь, когда я нажимаю на нее, код копируется в мой буфер обмена без кавычек. Это не работает так, как я планировал изначально, но результат - именно то, что я хотел.
Надеюсь, это поможет некоторым другим.
Вот несколько скриншотов того, что я сделал:
Вот где мне нужен код для каждого списка.
Sheet5
- это необработанные данные, разбитые на ячейки.
Вот готовый продукт, созданный по этим формулам.
И есть моя страница журнала с кнопкой.
При нажатии он копирует код в поле справа без кавычек.