复制
收藏
提问
简洁

Private Sub Worksheet_Change(ByVal Target As Range) Dim changedRange As Range Dim saveSheet As Worksheet Dim saveStartRow As Long Dim dataStartCol As Integer, dataStartRow As Integer, dataEndCol As Integer, dataEndRow As Integer Dim destRow As Long dataStartCol = 13 dataStartRow = 3 dataEndCol = 15 dataEndRow = 7 ' 确定改变的范围 Set changedRange = Intersect(Target, Me.Range(Me.Cells(dataStartRow, dataStartCol), Me.Cells(dataEndRow, dataEndCol))) If Not changedRange Is Nothing Then ' 设置保存的工作表 Set saveSheet = Worksheets("Home58") ' 找到目标工作表的下一空行 destRow = saveSheet.Cells(saveSheet.Rows.Count, 1).End(xlUp).Row + 1 ' 记录公式结果到目标工作表 saveSheet.Cells(destRow, 1).Resize(changedRange.Rows.Count, changedRange.Columns.Count).Value = changedRange.Value End If End Sub

a1bf4f287
1个月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

VBA 代码功能概述

  • 该VBA代码用于在Excel中实现数据的自动保存功能。

代码功能描述

  • 自动保存触发:当用户在指定范围内修改数据时,自动将这些数据保存到另一个工作表。20
  • 指定范围:数据的起始列是13(即M列),起始行是3,结束列是15(即O列),结束行是7。20
  • 目标工作表:保存到名为"Home58"的工作表。20
  • 定位空行:自动找到目标工作表的下一空白行进行数据保存。20
  • 数据复制:将修改后的数据复制到目标工作表的指定位置。20

代码实现步骤

  1. 定义变量以存储改变的范围、目标工作表、数据的起始和结束位置。
  2. 通过Intersect函数确定用户修改的数据是否在指定范围内。
  3. 如果修改的数据在指定范围内,设置目标工作表并找到下一空白行。
  4. 使用CellsResize方法将数据复制到目标工作表的相应位置。20
你觉得结果怎么样?
如何使用VBA在Excel中监控单元格变化?
VBA中Intersect函数的用法是什么?
如何在VBA中设置工作表的名称?
VBA中如何获取工作表的最后一行?
如何在VBA中复制单元格范围的值?
VBA中如何使用End函数定位单元格?

以上内容由AI搜集生成,仅供参考

在线客服