VBA for Excel:记录和处理可变数据

时间:2018-03-11 19:19:03

标签: excel vba excel-vba

我正在将excel电子表格作为输入。在这个电子表格中有一系列变量(在我的例子中,节点,但区别是无关紧要的)。每个节点都有一系列与它们相关的子变量(本质上是一系列情况),每个情况都有三个与它们相关的浮点变量(X,Y和Z坐标)。它可以像这样可视化:

jsonData.qualification.value

请参阅下图,了解输入数据的格式。请注意,可能有数百个单独的点。

This image shows how the data is initially formatted

现在这里我被困住了:

我需要逐点读取这些数据并进行处理。各种变量将被处理并输出到新的表格中,但我无法想出一种优雅的方式来读取要处理的数据。如果这是Python,我会为各个点建立一个类并将该方法与该类关联,但我不知道VBA的类似版本。

迭代每个点的最有效方法是什么,读入与每个点相关的数据,处理它,并将最终结果输出到新表?

提前感谢您的帮助。这个真的让我陷入困境。

1 个答案:

答案 0 :(得分:0)

试试这个(用你的实际输入和输出表名改变“myInputSheetName”和“myOutputSheetName”):

Sub ReadDataIn()
    Dim data As Variant

    Data = Worksheets(“myInputSheetName”).UsedRange.Value 

    ‘ and now you have a 2D array with as many rows and columns as excel sheet rows and columns with data
    Dim iRow As Long, jCol As Long
    For iRow = 1 To Ubound(data,1)
        For jCol = 1 To Ubound(data,2)
            MsgBox data(iRow, jCol)
            ‘Process your data
        Next
    Next

‘Write processed data into your output sheet

 Worksheets(“myOutputSheetName”).Range(“A1”).Resize(Ubound(data, 1), Ubound(data, 2)).Value = data

    End With

End Sub