Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 函数在未被调用的情况下运行_Excel_Vba_Function - Fatal编程技术网

Excel 函数在未被调用的情况下运行

Excel 函数在未被调用的情况下运行,excel,vba,function,Excel,Vba,Function,我有一个从公司电子表格中获得的函数来计算撤销日期,我在工作簿中添加了该工作表作为另一个工作表,以避免在需要使用该功能时打开另一个工作簿。奇怪的是,这个函数是由我的其他过程执行的,而我没有调用这个函数。我已经过很多次了,但不明白为什么要调用这个函数。有什么想法吗 Function sixdayworkweek(rngIn As Range, lngDays As Long, rngHolidays As Range) Dim rngCell As Range Dim lngStartDate As

我有一个从公司电子表格中获得的函数来计算撤销日期,我在工作簿中添加了该工作表作为另一个工作表,以避免在需要使用该功能时打开另一个工作簿。奇怪的是,这个函数是由我的其他过程执行的,而我没有调用这个函数。我已经过很多次了,但不明白为什么要调用这个函数。有什么想法吗

Function sixdayworkweek(rngIn As Range, lngDays As Long, rngHolidays As Range)
Dim rngCell As Range
Dim lngStartDate As Long, lngNextDay As Long, lngWorkDayCount As Long
Dim lngIncr As Long, lngC As Long
Application.Volatile
lngStartDate = CLng(rngIn.Value)
lngNextDay = lngStartDate
Do
  lngNextDay = lngNextDay + 1
  lngIncr = 1
If Weekday(lngNextDay, vbSunday) = 1 Then
  ' if day is Sunday, don't count it as a workday
  lngIncr = 0
Else
  For Each rngCell In rngHolidays
    ' if day is Holiday, don't count it as a workday
    If lngNextDay = CLng(rngCell.Value) Then
      lngIncr = 0
      Exit For
    End If
  Next rngCell
End If
' increment day by 1 or 0 if a Sunday or Holiday
lngWorkDayCount = lngWorkDayCount + lngIncr
Loop Until lngWorkDayCount = lngDays
sixdayworkweek = CDate(lngNextDay)
End Function

如果函数在某个单元格中使用,则每次重新计算时都会调用该函数。在您的工作表中搜索该函数。谢谢@ScottHoltzman,但我不是在我所在的实际工作表中起诉,而是在同一工作簿的另一工作表中使用。有没有一种方法可以让它只在我在那张表格里的时候启动?没有,但是你可以在浏览的时候关闭calcs,如果这是一个选项的话。好的,我来试试,你能告诉我关闭calcs的代码是什么吗?你可以很容易地通过google找到,但是它是
Application.Calculation=xlCalculationManual
如果该函数在某个单元格中使用,则每次重新计算时都会调用它。在您的工作表中搜索该函数。谢谢@ScottHoltzman,但我不是在我所在的实际工作表中起诉,而是在同一工作簿的另一工作表中使用。有没有办法让它只在我在那张特定的表格中时启动?没有,但如果这是一个选项的话,你可以在逐步完成的时候关闭calcs。好的,我试试,你能告诉我关闭calcs的代码是什么吗?你可以很容易地在google上找到,但是它是
Application.Calculation=xlCalculationManual