好的,我需要一些有关 excel 的帮助,我是新手。我有一个电子表格,它将所有这些值加在一起并将它们放在单元格 M3 中。但是,这是我将要使用的日常电子表格,所以我想添加一个按钮,当我第一次单击它时,它将运行一个宏来将值从 M3 复制到 N7。但是下次我单击它时,我希望它将值从 M3 复制到 N8,依此类推,直到 N37,持续一个月。
我已经尝试完成这件事一段时间了,但似乎找不到任何可以帮助我的东西,所以我想在这里问一下,也希望有人能为我解释一下代码,这样我就能更好地理解它。我已经添加了按钮,所以不需要告诉我怎么做。
答案1
通过使用函数工具->宏->录制新宏...,您可以像以前一样(使用键盘和鼠标)进行所有操作,之后(停止记录)你可以看看生成宏代码。
这在很多情况下都能有所帮助。
如果您遇到任何特殊问题,请发布您的代码。
答案2
将任意形状或自选图形放在工作表上并为其分配此宏:
Sub SaveResults()
Dim N As Long
If Range("N7").Value = "" Then
N = 7
Else
N = Cells(Rows.Count, "N").End(xlUp).Row + 1
End If
Cells(N, "N").Value = Range("M3").Value
End Sub
答案3
这就是你想要的。
当您运行 VBa 时,没有撤消,因此请先备份您的文件并使用副本进行操作!
请注意代码中的注释,这是您需要更新的内容
我还假设您没有使用 worksheet2,所以此代码使用它!
Option Explicit
Sub SaveAsNewRow()
Dim sourceData As String
sourceData = "A1" 'the column and row from where you want to copy FROM
Dim destinationData As String
destinationData = "B" 'the column from where you want to copy TO
Dim newRow As Integer
newRow = 1
Do While (Range(destinationData & newRow).Value <> "")
newRow = newRow + 1
Loop
Worksheets("sheet1").Range("B" & newRow).Value = Worksheets("sheet1").Range(sourceData).Value
End Sub