Excel 如何从第3行开始选择整个列-vba

Excel 如何从第3行开始选择整个列-vba,excel,vba,if-statement,for-loop,Excel,Vba,If Statement,For Loop,嘿,伙计们,这是我的代码,它正在工作,但不是选择整个列,而是选择第3行之后的所有列buter, 例如,我想选择所有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

嘿,伙计们,这是我的代码,它正在工作,但不是选择整个列,而是选择第3行之后的所有列buter, 例如,我想选择所有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

将A1更改为您的目的地范围

Sub test()

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

End Sub

@芬德温多的权利——已经被问了很多次了

thiswook.Worksheets(“output”).Cells(1,lcol).entireclumn.Resize(Rows.Count-3).Offset(3).选择

不过,无需选择图纸:

创建一张新图纸并选中该图纸,然后使用以下代码:

ThisWorkbook.Worksheets("output").Cells(1, lcol).EntireColumn.Resize(Rows.Count - 3).Offset(3).Copy _
    Destination:=ThisWorkbook.Worksheets("input").Cells(4, 2)
它将从输出复制到输入,而无需选择工作表-只需参考代码中的工作表即可。

以下是您的代码(以及您的答案):

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
尽量避免使用


此外,使用两张床单时,最好确保正确的亲子关系。With块及其相应的
允许此操作。

这已被多次询问。或者你可以在谷歌XDI道歉上找到它,如果它被问了这么多次,但当你刚接触VBA时,有时在别人的代码中很难理解!很抱歉这么烦人!但是谢谢所有帮助过你的人