当前位置: 首页 > 知识库问答 >
问题:

读取单元格值

夹谷信鸿
2023-03-14

1、我希望能够从封闭工作簿的单元格中读取值

算法:

>

  • 从关闭的excel文件读取-

    需要读取第一行第1列到第200列的整行

    变量1等于(A1)的单元格值,其中A1是字符串变量2等于(B1)的单元格值,其中B1是整数变量3等于(c1)的单元格值,其中c1是字符串:::变量200等于(第1行第200列)的单元格值,其中值是字符串

    最好的方法是什么?

    我应该能穿过100排

    你能告诉我吗

  • 共有1个答案

    舒宏富
    2023-03-14

    步骤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。例如,对于在3列中迭代100行,您可以编写:

    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
    

    我认为通过结合这三个步骤,你可以解决你的问题。

    如果列排列中有逻辑,您可以定义多维数组并将具有相似数据类型的列的所有值分配给该数组。

    假设奇数列(1, 3, 5, ..., 199)都是字符串。因此,您有100个字符串数据类型的列,并且您想在100行中迭代。

    因此,您需要定义一个像(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
    

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

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

     类似资料:
    • 我是否遗漏了一些奇怪的设置,会使忽略空白单元格? 最后我编写了一个helper函数,该函数删除了col_n)列。

    • 我有一个带有sheet1 excel文件,该文件的第2行和第10列有一个我需要读取的值。这是我的代码。 获取了cell对象Excel.Range后,我不知道如何读取该单元格的内容。我试着把它转换成数组并在它上面循环,我试着转换成字符串数组等等,我确信这是非常简单的。有没有直接的方法只得到一个字符串的单元格值?

    • 读取文件已支持 windows 系统,版本号大于等于 1.3.4.1; 扩展版本大于等于 1.2.7; PECL 安装时将会提示是否开启读取功能,请键入 yes; 优势 最大内存 == 最大单元格数据体积 该模式可满足 xlsx 大文件读取 函数原型 nextCellCallback(callable $callback, string $sheetName = NULL): void 回调函数

    • 我试图从excel文件中读取所有数据,其中也有一些公式单元格,但我不知道哪个单元格是公式单元格。如何读取单元格中的所有值,而不考虑单元格的类型。 我的代码看起来像这样 我得到的公式单元格值为0

    • 我正在开发一个上传excel文件并将其值插入数据库的应用程序。 我的代码如下: 所以当我上传一个像下面这样的excel文件时,它会工作并将其数据插入db。 但是,当我上传像以下这样的excel文件时,db不会更新。 我可以问你如何解决这个问题,所以即使单元格的值是=ROUNDUP((600),2),而不是600,它仍然更新db。 提前谢谢你。

    • 问题内容: 当我读取excel数字单元格值时,我得到带小数的输出。例如:79读数为79.0,0.00读数为0.0。我编写的应用程序代码是: 问题答案: Stack Overflow上经常出现这个问题,因此建议您仔细阅读许多类似的问题,以找到答案! Excel将文件格式中的几乎所有数字都存储为浮点值,这就是为什么POI会为您返回数字单元格的双精度数字,因为这就是真正的数字。如果希望它看起来像在Exc