1.我希望能够从封闭的工作簿中读取单元格中的值,并将其放在变量中,每个单元格中的变量类型不同(即整数或字符等)。也可以读取整行中的整行一次拍摄并将其放入阵列并在程序中使用它?
算法:
你能给些建议么
步骤1
要打开工作簿,您只需提供工作簿的地址并将其分配给新变量,然后在对象工作簿上应用Open方法即可打开它:
Sub OpenWorkbook()
Dim FileName As String
'Assign the address of your file to the variable FileName
FileName = "\FileAddress\FileName.xlsx"
Workbooks.Open FileName
End Sub
直到现在您已打开所需的Excel工作簿。
步骤2然后,您需要阅读工作簿的所需单元格。 您应该将每个单元格分别分配给一个新变量。所以你可以编写代码来为你做到这一点:
Sub OpenWorkbook()
Dim FileName As String
'Assign the address of your file to the variable FileName
FileName = "\FileAddress\FileName.xlsx"
Workbooks.Open FileName
Dim A1 As String
A1 = Workbooks("Excel File Name").Worksheets("Sheet Name").Range("A1")
Dim B1 As Integer
B1 = Workbooks("Excel File Name").Worksheets("Sheet Name").Range("B1")
Dim C1 As Integer
C1 = Workbooks("Excel File Name").Worksheets("Sheet Name").Range("C1")
'You continue until the column 200. If there is some logic you can assign your similar variables by a for loop to an array.
End Sub
第3步
对于您的问题,您需要定义数组。否则你无法解决这个问题。如果需要遍历100行,则需要为每列定义一个维度为100的数组。数组A(99)从A(0)开始到A(99),其维数为100.例如,对于100行的3列迭代,您可以编写:
Sub IterationInRows()
Dim A(99) As String, i As Integer
Dim B(99) As Integer
Dim C(99) As String
'Continue through all your variables
For i = 0 to 99
A(i) = Workbooks("Excel File Name").Worksheets("Sheet Name").Ragne("A" & i+1)
B(i) = Workbooks("Excel File Name").Worksheets("Sheet Name").Ragne("B" & i+1)
C(i) = Workbooks("Excel File Name").Worksheets("Sheet Name").Ragne("C" & i+1)
Next i
End Sub
我认为通过结合这3个步骤,您可以解决您的问题。
如果列排列中存在逻辑,则可以定义多维数组,并将具有相似数据类型的列的所有值分配给该数组。
假设奇数列(1,3,5,...,199)都是字符串。因此,您有100列字符串数据类型,并且您希望迭代100行。
所以你需要定义一个像A(99,99)这样的数组,通过使用两个嵌套的for循环遍历所有数组。
所以你写了这样的代码:
Sub Iteration2()
Dim A(99,49) As String, i as integer, j as integer
For i = 0 to 99
For j = 0 to 99
A(i,j) = Workbooks("Excel File Name").Worksheets("Sheet Name").Cells(i+1,2*j+1)
Next j
Next i
End Sub
也可以通过代码关闭工作簿。但是,您需要将工作簿分配给对象,然后将该方法应用于该对象附近。但我认为你不需要它。
你的问题有点宽泛。但我希望我能帮你解决问题。