gpt4 book ai didi

vba - Excel 宏 VBA - 插入单元格而不是复制

转载 作者:行者123 更新时间:2023-12-04 20:57:53 24 4
gpt4 key购买 nike

我尝试搜索与我的问题相关的多个问题,并尝试更改我自己的代码以适应解决方案,但是我不太擅长编程,因此没有一个解决方案对我有帮助。

因此这是我的问题:我创建了一个代码,如果它包含特定值,则通过按钮将整行复制到另一张纸上。

然而,由于底部有一个总和,代码会自动将它们复制到总和下方,使其无用。如果我更改范围以在总和之前复制单元格,则会出现下一个问题,即复制行而不插入行。因此,有时总和将被复制的单元格覆盖。

我不希望将总和放在顶部,我希望将单元格简单地插入总和之上,而不是复制:

Sub Test()
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
I = Worksheets("Sheet1").UsedRange.Rows.Count
J = Worksheets("Sheet2").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("Sheet2").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("Sheet1").Range("G1:G" & "999")
On Error Resume Next
Application.ScreenUpdating = False
For Each xCell In xRg
If CStr(xCell.Value) = "Test" Then
xCell.EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)
xCell.EntireRow.Delete
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub

我想我已经设法将其缩小到以下问题:
xCell.EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A" & J + 1)

不知何故,我需要更改它,以便在总和和上一个/最后一个插入的行之间插入一行。因此,在我的案例中,代码“J + 1”需要更改为总和与最后插入的行之间的距离,即“J - 5”。但是,这仍然不能解决我的“复制/插入”问题。

最佳答案

试试这样...

xCell.EntireRow.Copy
Worksheets("Sheet2").Range("A" & J + 1).Insert shift:=xlDown

关于vba - Excel 宏 VBA - 插入单元格而不是复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43467577/

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