在VBA中使用的拆分大数组公式
我试图将月份划分为每周的日期,如果一周中的任何特定开始日期与假期匹配,则应移至下一个工作日。突出显示的列中给出了最终更正日期 (无法发布图像或excel工作表,因为它不允许我成为新手) 在一些帮助下,我已经找到了执行此操作的数组公式,但由于255个字符的限制,该公式非常长,无法在VBA中使用在VBA中使用的拆分大数组公式,vba,excel,Vba,Excel,我试图将月份划分为每周的日期,如果一周中的任何特定开始日期与假期匹配,则应移至下一个工作日。突出显示的列中给出了最终更正日期 (无法发布图像或excel工作表,因为它不允许我成为新手) 在一些帮助下,我已经找到了执行此操作的数组公式,但由于255个字符的限制,该公式非常长,无法在VBA中使用 =IF(ISNUMBER(MATCH(C2,$M$2:$M$14,0)),MIN(IF((MMULT(-- (ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$
=IF(ISNUMBER(MATCH(C2,$M$2:$M$14,0)),MIN(IF((MMULT(--
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31)))
=TRANSPOSE($M$2:$M$14)),ROW($M$2:$M$14)^0)=0)*
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31))))>C2,
(MMULT(--
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31)))
=TRANSPOSE($M$2:$M$14)),ROW($M$2:$M$14)^0)=0)*
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31)))))),C2)
我需要将其分解成更小的版本或部分,以便在VBA中使用它。
非常感谢您的帮助。
谢谢为了避免255个字符的字符串限制,您可以声明变量并将其连接为:
Dim strFormula As String
strFormula = "IF(ISNUMBER(MATCH(C2,$M$2:$M$14,0)),MIN(IF((MMULT(--
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31)))
=TRANSPOSE($M$2:$M$14)),ROW($M$2:$M$14)^0)=0)*
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31))))>C2,"
strFormula = strFormula & "(MMULT(--
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31)))
=TRANSPOSE($M$2:$M$14)),ROW($M$2:$M$14)^0)=0)*
(ROW(INDEX($A:$A,DATE(YEAR(C2),1,1)):INDEX($A:$A,DATE(YEAR(C2),12,31)))))),C2)"
你能澄清一下你所指的255限额是多少吗?你在用那个字符串做什么?我试着用它,但它给了我一些括号(需要结束语句)错误。我试着把所有的括号都匹配起来,我觉得没问题。