gpt4 book ai didi

vba - 如何删除表格的一列并将其余部分向左移动而不影响excel vba中的先前表格

转载 作者:行者123 更新时间:2023-12-04 20:34:47 28 4
gpt4 key购买 nike

我有一个工作簿,其中包含具有固定列 E 到 S 和不固定行的数据表。每周我都会将此表复制到另一个名为“摘要”的工作簿中。我需要对表格进行一些计算,但首先我需要删除 P 列上的数据并将其余部分移到左侧。但是,我只想删除当前周的 P 列并忽略前几周。这是因为我已经删除了前几周的 P 列。我目前正在手动进行。因为我每周有 20 个数据表,所以我需要将大部分流程自动化,因此非常耗时。 .我已经为删除 P 列后所需的计算过程创建了代码。如何找到粘贴在工作表上的最后一个数据表,然后删除 P 列而不影响以前的数据?
这是我使用的计算代码。可能我需要创建一个代码来删除列 P 并将其他列移到左侧,然后再运行此计算代码。

Dim ws As WorksheetDim y As Workbook
Dim rng As Range
Dim i As Integer, r As Long, j As Long


Set y = ThisWorkbook


For Each ws In y.Worksheets
For Each rng In ws.UsedRange.SpecialCells(xlCellTypeConstants, 3).Areas
If rng.Rows.Count > 1 And rng.Columns.Count = 14 Then
j = 2
r = rng.Cells(rng.Rows.Count, 1).Row + 1
ws.Cells(r, rng.Columns(1).Column).Value = "total expenses"
For i = rng.Columns(2).Column To rng.Columns(2).Column + 12
ws.Cells(r, i).Formula = "=SUM(" & rng.Columns(j).Address & ")"
j = j + 1
Next i
End If
Next rng
Next
这是我粘贴到工作表后的表格示例,我需要删除当前周表的列 P (99-0)。
Example of the table

最佳答案

根据您的数据布局,您需要先捕获列 S然后相应地移动到 P 列。这应该这样做:

With ws
.Range(.Range("S1").End(xlDown), .Range("S999999").End(xlUp)).Offset(,-3).Delete Shift:=xlToLeft
End With

关于vba - 如何删除表格的一列并将其余部分向左移动而不影响excel vba中的先前表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43928756/

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