【发布时间】:2022-01-26 18:04:38
【问题描述】:
这是我下面的代码。我想复制它,以便它适用于每个新工作表,到目前为止,我必须进入并手动将代码更改为新工作表名称。这是很多工作,必须有一个我不知道的解决方法。我发现了循环,但如果该编码有效,我不会。它至少对我不起作用。我正在尝试为计费时间创建秒表功能。
我可以复制工作表并创建副本,但是在它说的新工作表中没有任何功能起作用
运行时错误 1004:范围类的选择方法失败
并停在这条线上:
Sheets("Client").Range("B" & iRow).Select
任何帮助将不胜感激!!!
Sub Intialize()
Dim iRow As Long
iRow = Sheets("Client").Range("F" & Application.Rows.Count).End(xlUp).Row
'Code to Validate
If Sheets("Client").Range("D" & iRow).Value = "" Then
Sheets("Client").Range("A" & iRow).Value = Format([Today()], "DD-MMM-YYYY")
End If
End Sub
Sub Start_Time()
Dim iRow As Long
iRow = Sheets("Client").Range("F" & Application.Rows.Count).End(xlUp).Row + 1
'Code to Validate
If Sheets("Client").Range("B" & iRow).Value = "" Then
MsgBox "Please select the Task Name from the drop down.", vbOKOnly + vbInformation, "Task Name Blank"
Sheets("Client").Range("B" & iRow).Select
Exit Sub
ElseIf Sheets("Client").Range("D" & iRow).Value <> "" Then
MsgBox "Start Time is aleady captured for the selected Task."
Exit Sub
Else
Sheets("Client").Range("D" & iRow).Value = [Now()]
Sheets("Client").Range("D" & iRow).NumberFormat = "hh:mm:ss AM/PM"
End If
End Sub
Sub End_Time()
Dim iRow As Long
iRow = Sheets("Client").Range("F" & Application.Rows.Count).End(xlUp).Row + 1
'Code to Validate
If Sheets("Client").Range("D" & iRow).Value = "" Then
MsgBox "Start Time has not been captured for this task."
Exit Sub
Else
Sheets("Client").Range("E" & iRow).Value = [Now()]
Sheets("Client").Range("E" & iRow).NumberFormat = "hh:mm:ss AM/PM"
Sheets("Client").Range("F" & iRow).Value = Sheets("Client").Range("E" & iRow).Value - Sheets("Client").Range("D" & iRow).Value
Sheets("Client").Range("F" & iRow).NumberFormat = "hh:mm:ss"
End If
Call Intialize
End Sub
【问题讨论】:
-
那么,您收到“错误 1004”,是不是说别的什么?我可以猜到它说了什么,但这是你应该在你的问题中提出的。当您遇到一些错误时,请务必将完整的错误消息复制到您的问题中,以及给出错误时您到底在做什么。
-
谢谢你,汤姆!是的,这是我得到的错误代码。对于那个很抱歉。具体来说,它说“运行时错误1004:范围类的选择方法失败”
-
它停在这个:Sheets("Client").Range("B" & iRow).Select
-
旁注:您在
Start_Time()中的Exit Subs 完全没有做任何事情,而End_Time()中的Call Intialize可以通过在@ 中移动来轻松删除987654329@块。 -
我不确定您的代码是如何放置的(模块与工作表、与数据相同的工作簿等)。您的问题可能是只有在该工作表处于活动状态时才能选择范围,但您还应该小心调用没有明确限定哪个工作簿的代码。所以列是 A = 日期、B = 任务、D = 开始时间、E = 结束时间、F = 持续时间?