【问题标题】:VBA Excel : Read file, and stock images in a columnVBA Excel:读取文件,并在一列中存储图像
【发布时间】:2012-06-13 17:17:14
【问题描述】:

我是 VBA 新手(我的意思是,真的很新),我希望你能给我一些提示。

我有一个包含 2 列的 Excel 文件:SKU 和 media_gallery 我还在一个文件夹中存储了图像(让我们将其命名为 /imageFolder)

我需要解析 imageFolder 并查找以 SKU.jpg 开头的所有图片,并将它们放入以分号 (;) 分隔的 media_gallery 列中

示例:我的 SKU 是“1001”,我需要解析所有以 1001 开头的图像的图像文件夹(所有图像都具有这种模式:1001-2.jpg、1001-3.jpg 等...)

我可以用 Java 或 C# 做到这一点,但我想给 VBA 一个机会。 :)

我该怎么做?

编辑:我只需要文件名是的!我应该说我的文件夹中有 20 000 张图片和 8000 个 SKU,所以我不知道如何处理 20 000 张图片名称的循环。

EDIT2:如果 SKU 包含破折号 ( - ),我不需要处理它,因此我可以传递到下一个 SKU。每个SKU最多有5张图片(....;SKU-5.jpg)

谢谢大家。

【问题讨论】:

    标签: regex image parsing vba directory


    【解决方案1】:

    如果列中每个单元格有一个图像名称,如何插入图像:How to get images to appear in Excel given image url

    采用上述方法并为文件名引入一个内部循环:

    if instr(url_column.Cells(i).Value, "-") = 0 then
    
      dim cur_file_name as string
      cur_file_name = dir("imageFolder\" & url_column.Cells(i).Value & "*.jpg")
    
      do until len(cur_file_name) = 0
        image_column.Cells(i).Value = image_column.Cells(i).Value & cur_file_name & ";"      
        cur_file_name = Dir
      loop
    end if
    

    【讨论】:

    • 我只需要文件名是的!我应该说我的文件夹中有 20 000 张图片和 8000 个 SKU,所以我不知道如何处理 20 000 张图片名称的循环。 EDIT2:如果SKU包含破折号( - ),我不需要处理它,所以我可以传递到下一个SKU
    • @user1023021 什么意思,不需要治疗?而且它不会循环 20000 个名称,Dir 应用了一个模式,例如SKU-5*.jpg。这发生在文件系统级别。
    • 如果 SKU 包含破折号(我们在 SKU 列中找到的 SKU)例如:SKU = thisIsMy-SKU 或 SK-U 或 111-5),我不需要处理它。
    • @user1023021 是的,但是“不治疗”是什么意思?
    • 跳过它,然后做列中的下一个 SKU。造成误会请见谅
    猜你喜欢
    • 2015-12-29
    • 2010-09-24
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多