gpt4 book ai didi

excel - VBA : how to use the address of the first cell greater than zero

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

我在这个问题上找到了多个答案,但我不知道如何将它应用到我自己的工作表中。
代码的第一步是对列 C 进行升序排序。
第二步是在 C 列中找到第一个值大于零的单元格(应该是 C7)。
我想不通的是如何使用第二步中的地址剪切第7、8和9行并将它们粘贴到Sheet2上

这是到目前为止的代码:

Sub findAdres()

' First Step Sort Values

Range("A2:C2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range( _
"C:C"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A:C")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

' Second Step find address of first cell in column C greater than zero

Dim lcell As Range

For Each lcell In Range("C2:C100")
If CLng(lcell.Value) > 0 Then
not_zero = lcell.Address
Exit For
End If
Next lcell

' Third step is cut all rows from row 7 down to end an paste in sheet2
' how do you use the lcell.Address to indicate what you want to cut?

End Sub

最佳答案

您已经有 lcell (定义为 Range )来自上一步,所以现在您可以将它与 Resize 一起使用.

' Third step is cut all rows from row 7 down to end an paste in sheet2    
' Copy >> Paste in 1 line, to "Sheet2" at "A2"
lcell.Resize(100 - lcell.Row + 1, 1).EntireRow.Copy Destination:=Worksheets("Sheet2").Range("A2")

备注 : 我正在使用 100作为最后一行(与上面的代码相同)。

注2 : 如果需要,可以替换 For Each lcell In Range("C2:C100")在步骤 2 中循环,使用 Find .

关于excel - VBA : how to use the address of the first cell greater than zero,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46420617/

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