【问题标题】:How to select the entire column starting from row 3 - vba如何从第 3 行开始选择整列 - vba
【发布时间】:2016-07-25 16:07:19
【问题描述】:

嘿,伙计们,这是我的代码,它正在运行,但我不想选择整个列,而是想选择第 3 行之后的所有列, 例如,我想选择所有列 b 但在 B3 之后 我希望这是有道理的。

有什么想法吗?

Sub HorizontalLoop()
Dim lCol As Long

Sheets("output").Select
For lCol = 1 To 100

Dim inputrange As String
If Not IsEmpty(Cells(lCol).Value) Then
inputrange = Cells(1, lCol).Value

Cells(1, lCol).EntireColumn.Select
Selection.Copy
Sheets("input").Select
ActiveSheet.range(inputrange).Select
ActiveSheet.Paste
Sheets("output").Select
End If
Next lCol
End Sub

任何帮助将不胜感激:) 谢谢 H

【问题讨论】:

  • 这个问题已经被问过很多次了。或者你可以在 google XD 上找到它
  • 我很抱歉,如果它被问了这么多次,但是当你刚接触 VBA 时,有时在别人的代码中很难理解!
  • 很抱歉打扰了!但是感谢所有帮助过的人

标签: excel vba if-statement for-loop


【解决方案1】:

将 A1 更改为您的目标范围

Sub test()

    Sheets("input").Range(Cells(3, "B") _
        , Cells(Sheets("input").Cells.Rows.Count, "B")).Copy Sheets("output").Range("A1")

End Sub

【讨论】:

    【解决方案2】:

    @findwindow 是对的 - 已经被问过很多次了。

    ThisWorkbook.Worksheets("output").Cells(1, lcol).EntireColumn.Resize(Rows.Count - 3).Offset(3).Select

    但无需选择工作表:

    创建一个新工作表并选择它然后使用此代码:

    ThisWorkbook.Worksheets("output").Cells(1, lcol).EntireColumn.Resize(Rows.Count - 3).Offset(3).Copy _
        Destination:=ThisWorkbook.Worksheets("input").Cells(4, 2)
    

    它会从 output 复制到 input 而无需选择工作表 - 只需在代码中引用工作表即可。

    【讨论】:

      【解决方案3】:

      这里是你的代码(你的答案)稍微清理一下:

      Sub HorizontalLoop()
      Dim lCol As Long
      Dim inputrange As String
      With Sheets("output")
          For lCol = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
              If Not IsEmpty(.Cells(1, lCol).Value) Then
                  inputrange = .Cells(1, lCol).Value
                  .Range(.Cells(3, lCol), .Cells(.Rows.Count, lCol)).Copy Sheets("input").Range(inputrange)
              End If
          Next lCol
      End With
      End Sub
      

      尽量避免使用.Select and .Activate

      另外,最好在使用两张纸时确保正确的亲子关系。 With 块及其对应的. 允许这样做。

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 2022-01-23
        • 1970-01-01
        • 2013-07-29
        • 1970-01-01
        • 2011-03-30
        相关资源
        最近更新 更多