Хорошо, мне нужна помощь с Excel, я новичок в этом. У меня есть таблица, которая складывает все эти значения вместе и помещает их в ячейку M3. Однако я буду использовать эту ежедневную электронную таблицу, поэтому я хочу добавить кнопку, которая будет запускать макрос для копирования значения из M3 в N7 при первом нажатии. Но затем в следующий раз, когда я нажму на него, я хочу, чтобы он копировал значение с M3 на N8 и так далее до N37 в течение нескольких месяцев.

Я пытался сделать это некоторое время и не могу найти ничего, что могло бы помочь мне, подумал, что я спрошу здесь, а также надеюсь, что кто-то немного объяснит код для меня, чтобы я мог лучше понять его. Я уже добавил кнопку, так что нет необходимости рассказывать мне, как это сделать.

3 ответа3

2

Это делает то, что вы хотите.

Когда вы запускаете 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

Как добавить VBA в MS Office?

2

Используя функцию Tools-> Macro-> Record New Macro ..., вы можете выполнять все свои операции, как раньше (с помощью клавиатуры и мыши), а после этого (остановить запись) вы можете взглянуть на сгенерированный макрокод.
Это может помочь во многих случаях.

Если у вас есть какие-то особые проблемы, пожалуйста, оставьте свой код.

2

Поместите любой Shape или AutoShape на лист и назначьте ему этот макрос:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .