gpt4 book ai didi

vba - "Worksheet_Change"覆盖重定位的行,无法处理列之间的间隙

转载 作者:行者123 更新时间:2023-12-04 21:34:59 26 4
gpt4 key购买 nike

我想在Sheet1中写一段VBA代码它对 Excel 下拉列表中所做的更改作出 react 。

目前,我已经编写了以下代码,其中 Zeile = Row并且下拉列表中的每个相关条目都可以在K7:K1007的范围内找到.当设置为 C (= 已完成),相应的行应重新定位到另一个表,称为 Completed Items .

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
Set Target = Intersect(Target, Range("K7:K1007"))
If Target Is Nothing Then Exit Sub
If Target = "C" Then
Zeile = Target.Row
Range(Range(Cells(Zeile, 1), Cells(Zeile, 11)), _
Range(Cells(Zeile, 14), Cells(Zeile, 17))).Copy _
Destination:=Sheets("Completed Items").Cells(Rows.Count, 1).End(xlUp).Offset(6, 0)
Target.EntireRow.Delete
End If
End Sub

Sheet1 移动一行到一张名为 Completed Items 的工作表作品。但是,仍然存在一些问题。

一直覆盖重定位的行

启动序列时,相应的行从 Sheet1 移动。行 7Completed Items .但是,移动另一行将导致覆盖行 7Completed Items .这是为什么?我试图改变 Offset()选项,但到目前为止还没有任何结果。

VBA 无法处理列 11 之间的间隙和 14
我只想重新定位列 1111417来自 Sheet1Completed Items以便该范围内的所有内容 Sheet1重新定位到列 115Completed Items .但是,这不起作用,并且所有列( 117 )来自 Sheet1搬迁至 Completed Items .怎么了?

最佳答案

正如@arcadeprecinct 提到的,第一个问题很可能是因为您要复制的第一行的 A 列中缺少值。

第二个问题是由于您如何定义范围 - 将两个范围作为参数传递给另一个范围将返回这两个范围的凸包,而不是它们的不相交并集。尝试
Application.Union(Range(Cells(Zeile, 1), Cells(Zeile, 11)), Range(Cells(Zeile, 14), Cells(Zeile, 17))).Copy
反而。

关于vba - "Worksheet_Change"覆盖重定位的行,无法处理列之间的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40606830/

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