在Excel中添加其他列而不破坏TrumpExcel模板中的公式

时间:2016-03-16 14:04:44

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

在Excel中总计n00b并且必须使用模板。它是Trump Excel的模板 我想通过在名称列之前添加4个额外的列进行修改,并且所有地狱都会松动。 我查看了来自wesbite的评论并设法从Dropbox获得了一个额外列的样本,但一切看起来都很难,这个样本看起来不像原始样本。缺少结束列。

我尝试在开头插入列和mnacro creaks。我修复了Macro bu更改以下行:

LeaveTracker.Range(Columns(Range("A3").Value * 31 - 29), Columns(Range("A3").Value * 31 + 1)).Hidden = False

并在Name之前添加EmpID,Rep,Col3后将范围更改为D3。

这会停止宏错误,但现在,日期有问题。 Jan显示从4日开始只有28次开始,2月有其他问题,其余的几个月也出现了日期问题。

如果我能得到任何帮助,我将不胜感激。谢谢。 excel文件是:Download

完整的宏是

Sub showcalendar()
LeaveTracker.Columns("B:NI").Hidden = True
LeaveTracker.Range(Columns(Range("A3").Value * 31 - 29), Columns(Range("A3").Value * 31 + 1)).Hidden = False
End Sub

日期公式

=IF(AND((COLUMN()-1)>31*($A$3-1),MONTH(DATE($A$2+INT(($A$3+$A$1)/12),INT((COLUMN()-1)/31.001)+$A$1,ROUNDUP(MOD(COLUMN()-1,31.001),0)))=ROUNDUP(MOD($A$1+$A$3-1,12.01),0)),ROUNDUP(MOD(COLUMN()-1,31.001),0),"")

The dates and formula

1 个答案:

答案 0 :(得分:0)

在一周的日期和日期中有一些复杂的公式。他们使用COLUMN函数返回当前单元格的列号。

首先,您需要坚持对宏所做的更改,但将Columns(Range("A3").Value * 31 + 1)更改为Columns(Range("A3").Value * 31 + 4)

其次,您需要调整行LeaveTracker.Columns("B:NI").Hidden = True以反映您正在进行的更改。我相信列应该是“E:NM”

第三,一周中的日期和日期都有复杂的公式。他们使用COLUMN()函数返回单元格的列号,以确定该月的某一天。你需要调整它。在“COLUMN() - 1”上进行查找和替换,并将其替换为“COLUMN() - 4”

这应该可以解决一些问题,让你感动。

编辑添加: 右键单击底部的滚动条,然后选择“格式控制...” 将目标单元格链接更改为“离开跟踪器”!$ D $ 1

这几乎可以解决所有问题。现在唯一的问题是,如果它少于31天,你将在月末有一两列空白。