将标题行大于0的所有列输出到另一张纸上

时间:2019-12-12 03:41:55

标签: excel vba

我在工作表1中有一个范围,从J11到BYW3000。每列的第11行包含0或大于0的数字。我想将该列的第11行中数字大于0的每一列的整个列输出到工作表2上,所有这些列都必须紧挨着每列第2页的其他内容。我没有任何代码,因为我是VBA的新手,也不知道sub()的语法是否保存。有人可以帮忙吗?

简而言之,将表1中标题行中所有值大于0的列粘贴到表2上。

我已经在下面编辑了您的代码,但似乎在每个语句中出现错误,错误是对象不支持属性。可以和我的“ a”声明一起出现吗?

我只需要放入<>“”而不是0,然后声明什么是COL。非常感谢您的帮助,Yasser。如果您有时间进行简要说明,我想知道代码的实际功能。比

Dim c As Range, COL As Long, a As Worksheet, b As Worksheet


Set a = ThisWorkbook.Worksheets("SOLVER")
Set b = ThisWorkbook.Worksheets("FEB Test")

COL = 9

Application.ScreenUpdating = False

    For Each c In a.Range("J11").CurrentRegion.Rows(1).Cells
        If c.Value <> "" Then
            COL = COL + 1
            With a
                .Range(.Cells(11, c.Column), .Cells(.Cells(Rows.Count, c.Column).End(xlUp).Row, c.Column)).Copy b.Cells(11, COL)
            End With
        End If
    Next c
Application.ScreenUpdating = True
End Sub

再次感谢!

1 个答案:

答案 0 :(得分:0)

尝试此代码

Sub Demo()
Dim c As Range, col As Long

Application.ScreenUpdating = False
    For Each c In Sheet1.Range("J11").CurrentRegion.Rows(1).Cells
        If c.Value > 0 Then
            col = col + 1
            With Sheet1
                .Range(.Cells(11, c.Column), .Cells(.Cells(Rows.Count, c.Column).End(xlUp).Row, c.Column)).Copy Sheet2.Cells(1, col)
            End With
        End If
    Next c
Application.ScreenUpdating = True
End Sub