复制
收藏
提问
简洁
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
1个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
VBA 代码功能概述
- 该VBA代码用于在Excel中实现数据的自动保存功能。
代码功能描述
- 自动保存触发:当用户在指定范围内修改数据时,自动将这些数据保存到另一个工作表。20
- 指定范围:数据的起始列是13(即M列),起始行是3,结束列是15(即O列),结束行是7。20
- 目标工作表:保存到名为"Home58"的工作表。20
- 定位空行:自动找到目标工作表的下一空白行进行数据保存。20
- 数据复制:将修改后的数据复制到目标工作表的指定位置。20
代码实现步骤
- 定义变量以存储改变的范围、目标工作表、数据的起始和结束位置。
- 通过
Intersect
函数确定用户修改的数据是否在指定范围内。 - 如果修改的数据在指定范围内,设置目标工作表并找到下一空白行。
- 使用
Cells
和Resize
方法将数据复制到目标工作表的相应位置。20
你觉得结果怎么样?