首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel VBA :搜索引用结构的数组

Excel VBA :搜索引用结构的数组
EN

Stack Overflow用户
提问于 2021-04-05 21:42:09
回答 2查看 77关注 0票数 1

我在下面创建了一个类型行,并在其中创建了一维数组:

代码语言:javascript
运行
复制
Public Type file_sizes
    fName As String
    fsize As Integer
End Type
    
Global file_array(1000) As file_sizes

我有一个包含一些合同号和文件名的excel。

我想构建另一个具有如下结构的数组:

代码语言:javascript
运行
复制
Public Type ctr_file_sizes
    ctr_id As String
    fName As String
    fsize As Integer
End Type

我的任务是查看数组file_array,找出字段fsize中给定文件名的值是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-05 22:03:20

我不确定我为什么会看到ctr_file_sizes的存在。似乎你想要的信息都是file_sizes类型的。

我建议你用字典

代码语言:javascript
运行
复制
Option Explicit

Dim files As New Dictionary

Sub populateFiles()
    
    Dim i
    For i = 1 To 1000   'iterate over your files however you please
        files.Add "file name", 3456
    Next
    
    
    'then to get a specific file's size
    Dim sizeYouWant As Long
    sizeYouWant = files("file name")
    
End Sub

您需要引用Microsoft Scripting Runtime

票数 3
EN

Stack Overflow用户

发布于 2021-04-05 22:02:16

你想做这样的事情吗?

代码语言:javascript
运行
复制
Option Explicit

Public Type file_sizes
    fName As String
    fsize As Integer
End Type
    
Public Type ctr_file_sizes
    ctr_id As String
    fName As String
    fsize As Integer
End Type

Global file_array(1000) As file_sizes

Sub Testit()
    Dim i As Long
    Dim arrCtr() As ctr_file_sizes

    ' some Testdata
    file_array(0).fName = "Given file Name"
    file_array(0).fsize = 1024
    
    file_array(1).fName = "Other file Name"
    file_array(1).fsize = 1048

    Dim fileName As String
    fileName = "Given file Name"
    Dim hit As Long
    For i = LBound(file_array) To UBound(file_array)
        If file_array(i).fName = fileName Then
            ReDim Preserve arrCtr(hit)
            arrCtr(hit).fName = file_array(i).fName
            arrCtr(hit).fsize = file_array(i).fsize
            arrCtr(hit).ctr_id = i  ' or whatever ctr_id is good for
            hit = hit + 1
        End If
    Next i
End Sub
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66954029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档