Я использую следующий код для получения страницы для "куспида" с www.merriam-webstercom. Он работал нормально, за исключением того, что фонетические символы не отображались должным образом. У меня есть такие вещи: \ ˈkÉ ™ -ËŒspÄt, -spÉ ™ t. При попытке вставить фонетические символы на эту страницу я получил точно такие же каракули.
Я искал в Интернете, но не получил никаких полезных сведений.
Есть предположения? Спасибо.
Sub import_from_web(ByVal lookup_word As String)
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://www.merriam-webster.com/dictionary/" & lookup_word, Destination:= _
Range("$A$1"))
.Name = "d"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.TextFilePlatform = xlMSDOS
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Спасибо. Я действительно пробовал «ТЕКСТ» вместо «URL», но он получил HTML-документ (полный HTML-тегов). Мне просто нужен простой текстовый файл.
Я думал о проблеме с кодировкой. Что произойдет, если вы попытаетесь установить TextFilePlatform на 65000 или 65001?
@ cybemetic.nomad Спасибо за комментарий. На самом деле эту строку следует закомментировать, потому что я считаю, что она работает только с ТЕКСТОМ, а не с URL. Должно быть, это пережиток более раннего судебного разбирательства. С этой строкой код не может быть скомпилирован.
65001 фактически сохраняет фонетические символы. В любом случае удалить HTML-теги и оставить только простой текст? Возможно, это мой единственный вариант.


В итоге я использовал совершенно другой подход. Вместо того, чтобы создавать ссылку, я просто открыл страницу, скопировал и вставил ее в Excel.
Спасибо этой теме:
Excel2010: Ошибка PasteSpecial при копировании из IE
Sub search_paste(ByRef IE As Object, ByVal lookup_word As String)
' this sub can handle non-ASCII characters
' it accepts a word from the calling sub and searches the word at Merian-Webster
' it then copies the web page and pastes to the ActiveSheet for further processing
With IE
.Visible = True
' .Navigate
.Navigate "https://www.merriam-webster.com/dictionary/" & lookup_word ' open the page containing the search word
Do Until .ReadyState = 4: DoEvents: Loop
End With
DoEvents
IE.ExecWB 17, 0 '// SelectAll
IE.ExecWB 12, 2 '// Copy selection
ActiveSheet.PasteSpecial link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
End Sub