Excel VBA 代码示例:读取和写入数据

这篇博客提供了一个使用 Excel VBA 读取和写入数据的详细代码示例。

功能:

  • 打开文件选择对话框,选择需要操作的 Excel 文件。
  • 删除指定工作表中的前 8 行。
  • 读取指定列(示例中为 F 列)的所有单元格内容。
  • 将读取到的数据写入到另一个工作表(示例中为 '项目-数据源' 工作表)的指定单元格(示例中为 N9 单元格开始)。

代码:

Sub ReadAndWriteData()
    Dim filePath As Variant
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim dataArr() As Variant
    Dim i As Long
    
    ' 打开对话框选择需要打开的Excel文件
    filePath = Application.GetOpenFilename(FileFilter:='Excel Files (*.xls), *.xls', Title:='选择Excel文件')
    
    If filePath <> False Then
        ' 打开Excel文件
        Set wb = Workbooks.Open(filePath)
        ' 假设要操作的是第一个工作表
        Set ws = wb.Worksheets(1)
        
        ' 删除第一行到第八行
        ws.Rows('1:8').Delete
        
        ' 获取F列的最后一行非空行行号
        lastRow = ws.Cells(ws.Rows.Count, 'F').End(xlUp).Row
        ' 将最后一行非空行行号赋给变量i
        i = lastRow
        
        ' 将F列的所有单元格内容值写入数组
        dataArr = ws.Range('F1:F' & lastRow).Value
        
        ' 关闭Excel文件
        wb.Close SaveChanges:=False
        
        ' 打开Excel文件
        Set wb = Workbooks.Open(filePath)
        ' 假设要操作的是'项目-数据源'工作表
        Set ws = wb.Worksheets('项目-数据源')
        
        ' 将数组的值写入到N9单元格
        For i = LBound(dataArr) To UBound(dataArr)
            ws.Range('N9').Offset(i - 1, 0).Value = dataArr(i, 1)
        Next i
        
        ' 保存修改并关闭Excel文件
        wb.Save
        wb.Close
        
        ' 弹出消息提示框
        MsgBox '已成功读取数据', vbInformation
    End If
End Sub

使用说明:

  1. 将以上代码复制到您的 Excel VBA 编辑器中。
  2. 修改代码中需要操作的工作表名称和单元格地址,以适应您的实际需求。
  3. 运行代码,并按照提示选择需要操作的 Excel 文件。

希望这段代码对您有所帮助!


原文地址: https://www.cveoy.top/t/topic/oG4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录