【问题标题】:VBA Download Image URL that contains HebrewVBA 下载包含希伯来语的图像 URL
【发布时间】:2021-03-20 00:19:55
【问题描述】:

我有一个文件名中包含希伯来语的链接:http://erezshaked.com/wp-content/uploads/2014/06/תפוח.jpg

我正在尝试下载它,但它不让我下载。我基本上是在尝试对其中的蛞蝓进行编码以使其: http://erezshaked.com/wp-content/uploads/2014/06/%D7%AA%D7%A4%D7%95%D7%97.jpg

这样我就可以下载了。

我已经有一个从 URL 下载图像的代码,但是当 URL 上有希伯来语时它不起作用。这是我的代码:

Sub Download_Image()

    Dim objShell As Object
    Dim objFolder As Object
    Dim objFile As Object

    Set objShell = CreateObject("Shell.Application")

    URLDownloadToFile 0, Cells(2, 1).Value, "E:\temp\" & Cells(2, 2) & ".jpg", 0, 0
        
    Set objFolder = objShell.Namespace("E:\temp\")
    Set objFile = objFolder.ParseName(Cells(2, 2) & ".jpg")

End Sub
                   

这是工作表的内容: 非常感谢您的帮助。

【问题讨论】:

  • “它不起作用”?错误信息是什么?此外,变量 i 未初始化。
  • i 没有被初始化,因为我为了这个测试把所有的循环和其他东西都拿出来了。我修好了,你现在可以检查一下。
  • 在下面查看我的工作答案。由于工作表的内容未知,因此无法测试您的代码。你也应该有 Cells(2, 2).Value
  • 我也添加了工作表的内容

标签: excel vba image url hebrew


【解决方案1】:

这适用于将单元格 A1 设置为 http://erezshaked.com/wp-content/uploads/2014/06/תפוח.jpg:

Option Explicit
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
    Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
    ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Sub Download_Image()

    Dim url As String
    Dim enc As String
    
    url = Range("A1").Value
          
    enc = WorksheetFunction.EncodeURL(url)
    enc = Replace(enc, "%3A", ":")
    enc = Replace(enc, "%2F", "/")
    URLDownloadToFile 0, enc, "E:\temp\test.jpg", 0, 0
End Sub

【讨论】:

  • erezshaked.com/wp-content/uploads/2014/06/… 没有希伯来语,希伯来语变成解码后的 URL 我需要下载第二个链接:erezshaked.com/wp-content/uploads/2014/06/תפוח.jpg
  • 好的,现在我添加了所需的编码功能。
  • URLDownloadToFileA的第一个和最后一个参数是LongPtrs。
  • 它不起作用,你对整个单元格进行了编码,只有最后一部分应该被编码,我实际上是通过仅剥离文件名(最后一个“/”之后的所有内容)然后对其进行编码。然后下载固定的 URL:最后一个“/”之前的所有内容 + 对最后一个“/”之后的所有内容进行编码。
  • 嗯,这不是编程服务。我为你解决了编码问题,所以你应该是一个绅士并标记我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 2017-11-25
  • 1970-01-01
相关资源
最近更新 更多