Так что я пытаюсь заставить пользователей отправлять время в электронную таблицу и обновлять внешнюю книгу. Обновление работает нормально, но то, что я не могу получить, - это оператор If перед закрытием внешней рабочей книги, который проверяет, является ли ячейка, которую вы обновляете, пустой или не первой. Если ячейка пуста, перейдите и обновите, иначе верните сообщение.Проверка наличия ячейки пустой и обновление значения ячейки, если пусто с VBA
код до сих пор: Получает Runtime Error 424 (Object Обязательный)
Private Sub submit_Click()
Application.ScreenUpdating = False
Workbooks.Open Filename:="Test_Book.xlsx"
ThisWorkbook.Activate
Application.ScreenUpdating = True
Dim fDate As Date
Dim rw As Long
Dim srchRange As Range
Dim book2Name As String, book2 As Workbook
book2Name = "Test_Book.xlsx" ' Name of Source File
Set book2 = Workbooks(book2Name)
fDate = Format(CDate(Month.Text & "/" & Day.Text & "/2015"), "dd/mm/yy")
fTime = Format(Hour.Text & ":" & Min.Text, "hh:mm")
Set srchRange = book2.Sheets("TB").Range("B:B") ' Search Range
If Application.CountIf(srchRange, fDate) Then
rw = Application.Match(CLng(fDate), srchRange, 0) ' Return row of result
Else
MsgBox Format(fDate, "dd/mm/yy") & " not found."
End If
sCell = book2.Sheets("TB").Range("D" & rw)
If IsEmpty(sCell.Value) Then
sCell.Value = fTime
Else
MsgBox ("There is already a time in this cell")
End If
Application.DisplayAlerts = False
Workbooks("Master_Timesheet.xlsx").Close SaveChanges:=True
Exit Sub
End Sub
Если IsNothing (sCell.Value2) Тогда ... Или вы могли бы попробовать: Если IsEmpty (sCell.Value2) Затем –
«что я не могу работать» - _what_ не работает? Вам нужно прояснить это. –
@JeremyThompson Вы имели в виду 'IsEmpty()'? :) –