,可以通过以下步骤实现:
以下是一个示例的VBA代码,可以实现上述功能:
Sub CopyColumns()
Dim srcSheet As Worksheet
Dim destSheet As Worksheet
Dim lastCol As Long
Dim i As Long
' 设置源工作表和目标工作表
Set srcSheet = ThisWorkbook.Sheets("源工作表名称")
Set destSheet = ThisWorkbook.Sheets.Add(After:=srcSheet)
destSheet.Name = "目标工作表名称"
' 获取标题行的最后一列
lastCol = srcSheet.Cells(1, srcSheet.Columns.Count).End(xlToLeft).Column
' 遍历标题行的每一列
For i = 1 To lastCol
' 判断列的值是否大于0
If srcSheet.Cells(1, i).Value > 0 Then
' 复制列的数据到目标工作表
srcSheet.Columns(i).Copy destSheet.Columns(destSheet.Cells(1, destSheet.Columns.Count).End(xlToLeft).Column + 1)
End If
Next i
' 自动调整目标工作表的列宽
destSheet.UsedRange.Columns.AutoFit
' 保存并关闭Excel文件
ThisWorkbook.Save
ThisWorkbook.Close
End Sub
请将代码中的"源工作表名称"和"目标工作表名称"替换为实际的工作表名称。执行该VBA代码后,将会在源工作表后创建一个新的工作表,并将标题行大于0的所有列复制到新的工作表中。
领取专属 10元无门槛券
手把手带您无忧上云