【发布时间】:2018-07-20 14:39:16
【问题描述】:
我正在使用 VBA 开发代码,但在执行在一个工作表中搜索范围以查找字符串的任务时遇到了问题;然后将字符串记录在同一行中,但为所有出现的情况保留一列(因此 .offset(0, -1));然后它在另一个工作表中搜索每个记录的字符串,并将与该列右侧记录的字符串对应的整数相加。
Option Explicit
Option Base 1
Public Sub StoredProcTimes()
Worksheets("Proc Time").Select
Dim Table() As Variant, nItem As Integer
Range("A2", Range("A2").End(xlDown).End(xlToRight)).Name = "ProcTime"
nItem = Range("ProcTime").Rows.Count
ReDim Table(nItem, 2)
End Sub
Public Sub DayLoad()
Range("G2", Range("G1").End(xlDown)).Name = "Dates"
Call StoredProcTimes
Dim reply As Date, cell As Range, sum As Integer
reply = InputBox("Specify Date", "Day Load", "9/1/2017")
For Each cell In Range("Dates")
If cell.Value = reply Then
cell.Offset(0, -1).Value
End If
Next
MsgBox "The load for " & reply & " is " & sum & " minutes"
End Sub
【问题讨论】:
-
请在您的问题中包含您的代码。
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。见:minimal reproducible example
-
这听起来像是可以用SUMIFS或SUMPRODCT函数完成的,这必须是VBA吗?
-
现在,请解释错误的性质以及您在哪一行得到错误。
-
感谢您对 cell.offset 的建议,现在我有了所需的值,我对如何在另一个工作表中搜索它们感到困惑
标签: vba excel if-statement foreach