引用通过宏

时间:2016-03-17 21:02:23

标签: excel vba excel-vba macros excel-formula

这里我对引用有一些疑问。我有一个项目,我创建了一些工作计划。这是一个简单的日历,在一列中我有日期,本栏中的每一行都有关于计划工作时间和实际工作时间的信息。我创建了一个工作簿,其中包含配置数据和一些用于运行工作表创建过程的按钮。每个员工的每个工作表。所有公式都是宏注入的。目标是用一些算法来计算加班时间。为了完成这一点,我需要检查:

  1. 每月的第一天检查上个月的最后一天是否为工作日;
  2. 每个月的最后一天检查下个月的第一天是否为工作日;
  3. 所以我通过vba worksheet.cell.formula插入一些公式。当公式引用前一个工作表时,它会正确计算。但是当我使用公式参考下一张表时,得到#ARG错误。但是,如果我使用此公式选择单元格并按Enter键,则会正确计算。通过工作表名称和通过cell.address进行引用,但效果相同。

    第一步是通过

    添加12张来配置工作表
    For arkusze = 1 To 12
        SheetName = miesiace(arkusze)
        Set wkbk = ThisWorkbook
        Set wks1 = ThisWorkbook.Worksheets.Add(After:=wkbk.Worksheets(wkbk.Worksheets.Count))
        wks1.Name = SheetName
    Next arkusze
    

    好的公式是:=daj50pr_new3(C" & dni + 5 & ":G" & dni + 5 & "," & wkbk.Worksheets(arkusze + 1).Cells(Day(pierw_dzien_mies - TimeValue("01:00:01")) + 5, 4).Address(External:=True) & ",D" & dni + 6)

    不好是:=daj50pr_new3(C" & dni + 5 & ":G" & dni + 5 & ",D" & dni + 4 & "," & wkbk.Worksheets(arkusze + 3).Cells(6, 4).Address(External:=True))

    最后,12张纸正在通过
    转到最终工作表 For Z = 3 To 14 wkbk.Worksheets(Z).Copy After:=wbNew.Sheets(wbNew.Sheets.Count) next Z

    使用FileFormat保存工作表:= 52 怎么解决这个?为什么引用下一张纸会产生错误?

1 个答案:

答案 0 :(得分:0)

我想我解决了这个问题。我将参考下一张纸的表移到了新的工作室。因此,工作表已经引用了尚未移动的其他工具。