gpt4 book ai didi

Excel VBA,如何根据列中的数据选择行?

转载 作者:行者123 更新时间:2023-12-02 09:05:34 31 4
gpt4 key购买 nike

Sub SelectAllReleventText()
Do While Range(“A1”).Offset(1, 6) <> Empty
Rows(ActiveCell.Row).Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub

这是我的脚本,有人告诉我它没有达到预期的效果,这是我的预期,因为这是我的第一次尝试。我想出了一个变量未定义的错误。我以为我定义了该变量,但我想它对于 Excel VBA 来说不够具体。

这就是我正在尝试做的事情。

  1. 在工作簿 1 的 B6 上有一个字母数字名称,我希望选择该行。
  2. 向下移动一行,如果有文本,请选择该行。
  3. 继续下去,直到文字不再流行。
  4. 复制选定的行。
  5. 粘贴到另一个工作簿 (Workbook2) 的选项卡 1 中,从第 2 行开始,因为第 1 行有标题。

提前致谢。请注意,我在 VBA 中使用显式选项,因为有人告诉我这是“正确的做法”...

最佳答案

是的,使用Option Explicit是一个好习惯。然而,使用 .Select 则不然:)它会降低代码的速度。还要完全证明工作表名称合理,否则代码将始终针对 Activesheet 运行,这可能不是您真正想要的。

这就是你正在尝试的吗?

Option Explicit

Sub Sample()
Dim lastRow As Long, i As Long
Dim CopyRange As Range

'~~> Change Sheet1 to relevant sheet name
With Sheets("Sheet1")
lastRow = .Range("A" & .Rows.Count).End(xlUp).Row

For i = 2 To lastRow
If Len(Trim(.Range("A" & i).Value)) <> 0 Then
If CopyRange Is Nothing Then
Set CopyRange = .Rows(i)
Else
Set CopyRange = Union(CopyRange, .Rows(i))
End If
Else
Exit For
End If
Next

If Not CopyRange Is Nothing Then
'~~> Change Sheet2 to relevant sheet name
CopyRange.Copy Sheets("Sheet2").Rows(1)
End If
End With
End Sub

注意

如果您有从第 2 行到第 10 行的数据,并且第 11 行为空白,然后您又从第 12 行获得了数据,那么上述代码将仅复制从第 2 行到第 10 行的数据

如果您想复制所有包含数据的行,请使用此代码。

Option Explicit

Sub Sample()
Dim lastRow As Long, i As Long
Dim CopyRange As Range

'~~> Change Sheet1 to relevant sheet name
With Sheets("Sheet1")
lastRow = .Range("A" & .Rows.Count).End(xlUp).Row

For i = 2 To lastRow
If Len(Trim(.Range("A" & i).Value)) <> 0 Then
If CopyRange Is Nothing Then
Set CopyRange = .Rows(i)
Else
Set CopyRange = Union(CopyRange, .Rows(i))
End If
End If
Next

If Not CopyRange Is Nothing Then
'~~> Change Sheet2 to relevant sheet name
CopyRange.Copy Sheets("Sheet2").Rows(1)
End If
End With
End Sub

希望这是您想要的吗?

席德

关于Excel VBA,如何根据列中的数据选择行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9790924/

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