从工作簿中读取单元格值和整行,并循环显示多行

问题描述 投票:1回答:1

1.我希望能够从封闭的工作簿中读取单元格中的值,并将其放在变量中,每个单元格中的变量类型不同(即整数或字符等)。也可以读取整行中的整行一次拍摄并将其放入阵列并在程序中使用它?

算法:

  1. 从封闭的excel文件中读取 - >我想知道如何打开文件和读取单元格数据;
  2. 需要读取Frist行的第1列到第200列的整行,并且需要以下面的方式将其分配给变量,但是要确保数据类型是保持的(即字符串应保持字符串和整数以保持为整数) 变量1等于(A1)的单元格值,其中A1是一个字符串变量2等于(B1)的单元格值,其中B1是整数Varaibale 3等于(c1)的单元格值,其中C1是字符串:: ::变量200等于单元格的值(第1行第200列)其中value是字符串 做这个的最好方式是什么。
  3. 我应该能够通过100行并且每次都执行步骤2以获得相应的行和列。

你能给些建议么

excel vba ms-access access-vba
1个回答
0
投票

步骤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

也可以通过代码关闭工作簿。但是,您需要将工作簿分配给对象,然后将该方法应用于该对象附近。但我认为你不需要它。

你的问题有点宽泛。但我希望我能帮你解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.