Excel VBA 代码示例:读取和写入数据
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
使用说明:
- 将以上代码复制到您的 Excel VBA 编辑器中。
- 修改代码中需要操作的工作表名称和单元格地址,以适应您的实际需求。
- 运行代码,并按照提示选择需要操作的 Excel 文件。
希望这段代码对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/oG4 著作权归作者所有。请勿转载和采集!