Используйте командную кнопку VBA ActiveX для печати в первую пустую строку другого листа - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь использовать командную кнопку, которая находится на листе 1, чтобы напечатать значение (на данный момент, просто используя «сейчас» в качестве фиктивного значения) в первой пустой строке в столбце B на втором листе - листе 2, который был переименован в «Журнал». Что-то не работает в коде - я пытался:

Worksheets("Log").Activate

, который работал, чтобы активировать этот второй лист, но он печатал значение в первой пустой строке на Лист 1!

Мой текущий код (полностью) выглядит следующим образом:

Dim ws As Worksheet
Set ws = Worksheets("Log")
With ws
   Dim emptyrow As Long
   Dim LastRow As Variant

      emptyrow = WorksheetFunction.CountA(Range("B:B")) + 1
      LastRow = Cells(Rows.Count, 1).End(xlUp).Value

        If IsNumeric(LastRow) Then
        Else
            LastRow = 0
        End If

        Cells(emptyrow, 2).Value = LastRow + 1 'I want to print an ascending count of the scenarios I have printed
        Cells(emptyrow, 3).Value = Now 'This should print the time and date
End With

По какой-то причине он по-прежнему печатает значение «LastRow + 1» и «Сейчас» на листе 1 в ячейках B2 и B3 соответственно.

Ответы [ 2 ]

0 голосов
/ 29 января 2020
Sub PasteDataOnEmptyRow()
 Dim ws As Worksheet
 Dim LastRow As Long
 Set ws = Worksheets("Log")
 With ws
    LastRow = .Cells(.Rows.count, 1).End(xlUp).row ' Last row keeping values in column A:A

    .Cells(LastRow + 1, 2).Value = LastRow + 1 'This will print in column B:B (last empty row of A:A)
    .Cells(LastRow + 1, 3).Value = Now 'This will print in column C:C (last empty row of A:A)
    .Range("A" & LastRow + 1).Value = "Test in A:A last row"
    .Range("A" & LastRow + 1).Offset(1, 0).Value = "Test in A:A the following row"
 End With
End Sub
0 голосов
/ 29 января 2020

Вам нужно сослаться на ваш объект ws

Итак

.Cells(emptyrow, 2).Value в вашем блоке,

Глядя на него, ваш lastrow будет одни и те же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...