Vbscript VBS:在二维数组(行和列)中查找最大str长度 需要在2D数组(行和列)中查找最大字符串长度以计算最小列宽 如何根据变量值定义固定数组大小(可以从工具返回) '现在我们有: Dim-arr() Dim nRowsMax,nColumnMax nRows=oTool.MaxRowCount nColumns=oTool.MaxColCount ReDim arr(nRows、nColumns) 尺寸sCellValue:sCellValue=oTool.Value(nRow,nCol) 尺寸nCellWidth=Len(sCellValue) Dim nRow,nCol 对于nRow=1至nRow 对于n列=1到n列 如果arr(nRow,nCol)nMax,则nMax=arr(nRow,nCol) 下一栏 下一排

Vbscript VBS:在二维数组(行和列)中查找最大str长度 需要在2D数组(行和列)中查找最大字符串长度以计算最小列宽 如何根据变量值定义固定数组大小(可以从工具返回) '现在我们有: Dim-arr() Dim nRowsMax,nColumnMax nRows=oTool.MaxRowCount nColumns=oTool.MaxColCount ReDim arr(nRows、nColumns) 尺寸sCellValue:sCellValue=oTool.Value(nRow,nCol) 尺寸nCellWidth=Len(sCellValue) Dim nRow,nCol 对于nRow=1至nRow 对于n列=1到n列 如果arr(nRow,nCol)nMax,则nMax=arr(nRow,nCol) 下一栏 下一排,vbscript,Vbscript,根据您最新的问题和评论,这里有一个调整后的答案: Dim iRows, iColumns Dim iRowCounter, iColumnCounter Dim sValue Dim iLength Dim iMaxLength Dim arrMaxLength() iRows = oTool.MaxRowCount iColumns = oTool.MaxColCount ' Set array dimensions based on values from oTool ReDim arr

根据您最新的问题和评论,这里有一个调整后的答案:

Dim iRows, iColumns
Dim iRowCounter, iColumnCounter
Dim sValue
Dim iLength
Dim iMaxLength
Dim arrMaxLength()

iRows = oTool.MaxRowCount
iColumns = oTool.MaxColCount

' Set array dimensions based on values from oTool
ReDim arrMaxLength(iColumns)

For iColumnCounter = 1 To iColumns

    arrMaxLength(iColumnCounter - 1) = 0

    For iRowCounter = 1 To iRows

        ' Get value and compare negth with previous iMaxLength
        sValue = oTool.Value(iRowCounter, iColumnCounter)
        iLength = Len(sValue)
        If iLength > iMaxLength Then iMaxLength = iLength
        If iLength > arrMaxLength(iColumnCounter - 1) Then arrMaxLength(iColumnCounter - 1) = iLength

    Next ' Row

Next ' Column

它可能要做的是冗长乏味的方法——中间有2个测试循环。谢谢。我忘了提到:sCellValue=oTool.Value(nRow,nCol)和nCellWidth=Len(sCellValue)。所以你可以直接调用
svvalue=oTool.Value(iRowCounter-1,iColumnCounter-1)
,你甚至不需要
arr
数组。所以我可以一次计算列宽并列出所有表项?我遗漏了一件事。在您的代码示例中,有一个从整个2D表计算的最大值。我需要得到的是根据表项计算每一列的宽度,所以需要计算每一列的宽度,然后列出所有的项目。用代码更新答案以跟踪最大列长
iMaxLength
是最大的总长度,而
arrMaxLength(列)
(基于零的数组)包含每列的最大长度。
Dim iRows, iColumns
Dim iRowCounter, iColumnCounter
Dim sValue
Dim iLength
Dim iMaxLength
Dim arrMaxLength()

iRows = oTool.MaxRowCount
iColumns = oTool.MaxColCount

' Set array dimensions based on values from oTool
ReDim arrMaxLength(iColumns)

For iColumnCounter = 1 To iColumns

    arrMaxLength(iColumnCounter - 1) = 0

    For iRowCounter = 1 To iRows

        ' Get value and compare negth with previous iMaxLength
        sValue = oTool.Value(iRowCounter, iColumnCounter)
        iLength = Len(sValue)
        If iLength > iMaxLength Then iMaxLength = iLength
        If iLength > arrMaxLength(iColumnCounter - 1) Then arrMaxLength(iColumnCounter - 1) = iLength

    Next ' Row

Next ' Column