变量等于带有已声明变量的公式
Variable equal to formula with a declared variable
抱歉,如果标题令人困惑,我不确定如何表达。基本上我想写一个公式,它从用户指定的单元格 (myDate) 和起始单元格 (FirstCell) 的地址中获取日期,并基于此:
- 设置一个范围 (myArea),该范围从指定的单元格开始,延伸的单元格数等于我们选择的日期的年月天数 (numDays)。
- 计算该范围内没有空白内部的单元格(sheet 中没有条件格式)并且 return 是那个数字。
例如,假设我的日期是 2022 年 1 月 4 日,而 2022 年的四月有 5 天,但我的 table 有 6 列。我想根据这个特定月份的长度定义一个范围,以便内部没有空白的单元格的数量等于 1 而不是 2。我希望它可以在不同的月份重现。
第 2 点已完成并使用简单的 user-specified 范围,第 1 点给我带来了麻烦,因为我不希望它 return [=30] 中的任何内容=].具体问题是设置 numDays 但可能还有其他我没有发现的错误 - 基本上我试图移植 excel 函数解决方案以将其计入 VBA 但我很确定我得到了语法错误 and/or 这是不可行的。在这里找不到任何可以回答我问题的东西,当我尝试使用它 returns #VALUE 的函数时!在价差sheet.
Function SPECIALDAYS (FirstCell as Range, myDate as Date)
Dim myCell as Range
Dim myArea as Range
Dim numDays as Integer
numDays = Application.Evaluate("Day(Eomonth(" & myDate & ",0))")
Set myArea = Range(FirstCell, FirstCell.Offset(0, numDays-1))
For Each myCell In myArea
If myCell.Interior.ColorIndex <> -4142 Then
SPECIALDAYS=SPECIALDAYS+1
End If
Next myCell
End Function
不要使用 Evaluate
和公式,而是使用带有 WorksheetFunctions
的纯 VBA 解决方案:
numDays = Day(Application.WorksheetFunction.EoMonth(Date, 0))
抱歉,如果标题令人困惑,我不确定如何表达。基本上我想写一个公式,它从用户指定的单元格 (myDate) 和起始单元格 (FirstCell) 的地址中获取日期,并基于此:
- 设置一个范围 (myArea),该范围从指定的单元格开始,延伸的单元格数等于我们选择的日期的年月天数 (numDays)。
- 计算该范围内没有空白内部的单元格(sheet 中没有条件格式)并且 return 是那个数字。
例如,假设我的日期是 2022 年 1 月 4 日,而 2022 年的四月有 5 天,但我的 table 有 6 列。我想根据这个特定月份的长度定义一个范围,以便内部没有空白的单元格的数量等于 1 而不是 2。我希望它可以在不同的月份重现。
第 2 点已完成并使用简单的 user-specified 范围,第 1 点给我带来了麻烦,因为我不希望它 return [=30] 中的任何内容=].具体问题是设置 numDays 但可能还有其他我没有发现的错误 - 基本上我试图移植 excel 函数解决方案以将其计入 VBA 但我很确定我得到了语法错误 and/or 这是不可行的。在这里找不到任何可以回答我问题的东西,当我尝试使用它 returns #VALUE 的函数时!在价差sheet.
Function SPECIALDAYS (FirstCell as Range, myDate as Date)
Dim myCell as Range
Dim myArea as Range
Dim numDays as Integer
numDays = Application.Evaluate("Day(Eomonth(" & myDate & ",0))")
Set myArea = Range(FirstCell, FirstCell.Offset(0, numDays-1))
For Each myCell In myArea
If myCell.Interior.ColorIndex <> -4142 Then
SPECIALDAYS=SPECIALDAYS+1
End If
Next myCell
End Function
不要使用 Evaluate
和公式,而是使用带有 WorksheetFunctions
的纯 VBA 解决方案:
numDays = Day(Application.WorksheetFunction.EoMonth(Date, 0))