You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VBS中将CSV每行第二个值存入指定数组?

解决方法

VBS中的数组默认是固定长度的,要动态添加元素需要用ReDim Preserve扩展数组长度,同时还要处理空行或格式错误的行避免下标越界。你可以按以下方式修改代码:

Public Function readeEachColumnDataExcel()
    Dim filename
    Dim fso
    Dim f
    Dim arrData
    Dim arrDataParameter()
    Dim fData
    Dim i ' 数组索引计数器

    filename = "test.csv"
    
    Set fso = createobject("scripting.filesystemobject")
    Set f  = fso.OpenTextFile("C:\Users\U5UI5TU\Documents\PDRM_Project\Excel\"& Filename)
    
    i = 0 ' 初始化计数器
    While not f.AtEndOfStream
        fData = f.ReadLine    ' 读取CSV文件的一行
        arrData = split(fData,",")    ' 按逗号分割行内容
        
        ' 检查是否存在第二个元素,防止下标越界
        If UBound(arrData) >= 1 Then
            ' 扩展数组长度,Preserve关键字保留已有数据
            ReDim Preserve arrDataParameter(i)
            ' 存入第二个值,用Trim去除前后多余空格
            arrDataParameter(i) = Trim(arrData(1))
            i = i + 1 ' 计数器自增,准备下一个元素的存储
        End If
    Wend

    f.Close
    Set fso=Nothing
    
    ' 可选:遍历数组验证结果
    For Each item In arrDataParameter
        WScript.Echo item
    Next
End Function
 
Call readeEachColumnDataExcel

关键说明

  • ReDim Preserve arrDataParameter(i):每次循环动态扩展数组长度,Preserve确保之前存入的数据不会被清空
  • Trim(arrData(1)):处理CSV中第二个值自带的前导空格,得到干净的内容
  • If UBound(arrData) >= 1 Then:过滤空行或格式错误的行,避免出现"下标越界"的运行错误

内容的提问来源于stack exchange,提问作者Salman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:40:09