gpt4 book ai didi

EXCEL VBA,插入空白行和移动单元格

转载 作者:行者123 更新时间:2023-12-01 19:10:56 26 4
gpt4 key购买 nike

我在输入整个空白行时遇到问题。我正在尝试移动 A-AD 列(Z 后面四列)。

当前单元格 A-O 有内容。单元格 O-AD 为空白。但我正在运行一个宏,将数据放在当前数据的右侧(O 列)。

我可以使用

插入一行
dfind1.Offset(1).EntireRow.Insert shift:=xlDown

但它似乎只是从 A-O 向下移动。我已经设法使用 for 循环向下移动 O-AD

dfind1 as Range
For d = 1 To 15
dfind1.Offset(2, (d + 14)).Insert shift:=xlDown
Next d

有没有办法将 30 个单元格与 15 个单元格下移?同样,我想将 15 移至右侧的单元格。目前我有另一个 for 循环设置。

至于其余代码,如下。基本上,基于在 A 列中找到匹配项来合并两个 Excel 工作表。我已经标记了问题区域。其余代码大部分都有效。

Sub combiner()

Dim c As Range, d As Long, cfind As Range, x, y, zed, dest As Range, cfind1 As Range, dfind As Range, _
dfind1 As Range, crow, x_temp, y_temp

On Error Resume Next
Worksheets("sheet3").Cells.Clear
With Worksheets("sheet1")
.UsedRange.Copy Worksheets("sheet3").Range("a1")
End With

With Worksheets("sheet2")
For Each c In Range(.Range("a3"), .Range("a3").End(xlDown))
x = c.Value
y = c.Next

Set cfind = .Cells.Find(what:=y, lookat:=xlWhole)
.Range(cfind.Offset(0, -1), cfind.End(xlToRight)).Copy

With Worksheets("sheet3")
Set dfind1 = .Cells.Find(what:=x, lookat:=xlWhole)
If dfind1 Is Nothing Then GoTo copyrev

'**************************************************************
'**************************************************************
'This is the problem Area
'I'm basically having trouble inserting a blank row
dfind1.Offset(1).EntireRow.Insert shift:=xlDown



For d = 1 To 15
dfind1.Offset(1).Insert shift:=xlToRight
Next d

For d = 1 To 15
dfind1.Offset(2, (d + 14)).Insert shift:=xlDown
Next d
'**************************************************************
'**************************************************************


End With 'sheet3
GoTo nextstep

copyrev:
With Worksheets("sheet3")
x_temp = .Cells(Rows.Count, "A").End(xlUp).Row
y_temp = .Cells(Rows.Count, "P").End(xlUp).Row
If y_temp > x_temp Then GoTo lr_ed
lMaxRows = x_temp
GoTo lrcont
lr_ed:
lMaxRows = y_temp
lrcont:
.Range(("P" & lMaxRows + 1)).PasteSpecial
Worksheets("sheet2").Range(cfind.Offset(0, -1), cfind.Offset(0, 0)).Copy
.Range(("A" & lMaxRows + 1)).PasteSpecial
End With 'sheet3


nextstep:
Next


lngLast = Range("A" & Rows.Count).End(xlUp).Row

With Worksheets("Sheet3").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A1:A2" & lngLast), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("B3:Z" & lngLast)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With


End With 'sheet2
Application.CutCopyMode = False
End Sub

最佳答案

如果您只想将所有内容向下移动,您可以使用:

Rows(1).Insert shift:=xlShiftDown

同样将所有内容转移:

Columns(1).Insert shift:=xlShiftRight

关于EXCEL VBA,插入空白行和移动单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816883/

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