excel - 如何从Excel文件中读取单元格值

标签 excel vba

我有一个文件夹,其中包含每个员工的一个 Excel 工作簿(工作簿中只有一个工作表)。我想打开每个员工工作簿并读取 $A$1 中的单元格,然后写入另一个工作表。最终,我将拥有一个工作表,其中包含每个工作簿的所有 $A$1 单元格。我编写了以下代码,但我指出的行由于某种原因不起作用。你能建议如何做到这一点吗?谢谢

Private Sub CommandButton1_Click()
Const FOLDER As String = "c:\Junk\Employee Files\"

On Error GoTo ErrorHandler

Dim i As Integer
i = 0

Dim fileName As String

fileName = Dir(FOLDER, vbDirectory)
   Do While Len(fileName) > 0

    If Right$(fileName, 4) = "xlsx" Then
        i = i + 1

        Dim currentWkbk As Excel.Workbook
         Set currentWkbk = Excel.Workbooks.Open(FOLDER & fileName)
         Cells(i, 1) = "Employee " & 1
        'The line above works perfectly
         Cells(i, 2) = currentWkbk.Range("A1").Value   
        'The line doesn't work.  above works perfectly
    End If
    fileName = Dir
  Loop

ProgramExit:
   Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit

End Sub

最佳答案

布拉德确实有一点,但我认为您的错误更有可能是由于缺少指定的工作表 - 尝试使用此:

Cells(i, 2) = currentWkbk.worksheets(1).Range("A1").Value   

而不是这个

Cells(i, 2) = currentWkbk.Range("A1").Value

但是,您也应该考虑使用 Brads 的建议;)

有些人可能建议使用动态解决方案来选择工作表。我没有使用,因为您明确表示,只有一张工作表。但无论如何,您当然可以使其动态化或使用工作表的实际名称而不是 1 - 无论您的需要如何。

关于excel - 如何从Excel文件中读取单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123400/

相关文章:

excel - 高级 Excel 帮助 - 查找公式

vba - 获取下拉列表中所选项目的位置(以数量为单位)

c# - 如何导出到 Excel?

excel - =INDEX(PeriodList,MonthNo) 在工作簿中创建 _xlfn.SINGLE 名称

python - Plotly:如何在 Excel 中嵌入完全交互式的 Plotly 图形?

vba - 子或函数未定义错误?

excel - 在 excel 中限制标题编辑

vba - 删除星号字符

Excel F2 或 sendkeys{F2} 调整单元格大小

excel - 从 Excel 连接到 RDP