gpt4 book ai didi

excel - 如何跨范围复制excel文件中的单元格格式?

转载 作者:行者123 更新时间:2023-12-04 20:29:15 25 4
gpt4 key购买 nike

我有这个 excel 表(上面链接的图片),我需要每月更新它,正如你所看到的,每个月都有一个带有新数字的新列。在花了一段时间试图掌握 vba 并四处询问之后,我感激地得到了这段代码:

Sub Increment_Month()


Dim lngLastCol As Long, lngRow As Long

lngRow = ActiveCell.Row
lngLastCol = Cells(lngRow, Columns.Count).End(xlToLeft).Column

If IsDate(Cells(lngRow, lngLastCol)) Then
With Union(Cells(3, lngLastCol + 1), Cells(17, lngLastCol + 1), Cells(32, lngLastCol + 1))
.Value = DateAdd("M", 1, CDate(Cells(lngRow, lngLastCol)))
.NumberFormat = Cells(lngRow, lngLastCol).NumberFormat
End With
End If

End Sub

这增加了我的月份,所以我可以点击一个按钮,它将下个月作为标题。我现在被困在如何将前几个月的格式粘贴到接下来的几个月中,即有一个更新格式的宏,而不必复制每个月的格式(边框、颜色标题等),但是宏 i got 只是覆盖了过去几个月的数据,而没有一个月的时间。

抱歉,如果这没有意义(请随时让我澄清)。

谢谢你的帮助!

最佳答案

下面的代码会将最后一列复制到右侧并清除内容。然后它将在前一个日期添加一个月,并复制您的总和公式(如果您有总和公式)。我只遍历了第 7 行以涵盖您的第一组数据,您可以根据需要进行更改。

Dim lCol As Long
lCol = Cells(3, Columns.Count).End(xlToLeft).Column

Columns(lCol).Copy
Columns(lCol + 1).Insert Shift:=xlToRight
Columns(lCol + 1).ClearContents

For Each cell In Range(Cells(3, lCol), Cells(7, lCol))
If IsDate(cell.Value) Then
cell.Offset(, 1).Value = DateAdd("m", 1, cell.Value)
End If

If cell.HasFormula = True Then
cell.Copy
cell.Offset(, 1).PasteSpecial Paste:=xlPasteFormulas
End If
Next cell

Application.CutCopyMode = False

关于excel - 如何跨范围复制excel文件中的单元格格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53121002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com