我在工作表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
再次感谢!
答案 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