我有一个需要使用宏自动化的任务,我已经编写了代码来执行此操作;但是,我的代码无法成功完成任务。因此,我现在需要你的帮助。
请下载我的示例文件,包括3张:“start_1”,“start_2”和“result”。 “start_1”和“start_2”完全相同。我需要将这两张表中的表格格式化为“start”,这样它们看起来就像是“结果”表。
http://www.mediafire.com/download/n8dwli8v55lw9gl/add_a_blank_column_before_each_table.xls
详细地说,这里有需要自动化的任务:
非常感谢你的帮助。
以下是我的代码(在ThisWorkbook模块中):
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim bScrUpdate As Boolean
Dim ws As Worksheet
Dim rng As Range
Application.EnableCancelKey = xlDisabled 'disable ESC key
bScrUpdate = Application.ScreenUpdating
If bScrUpdate = True Then Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "result" Then
ws.Select
Rows("1:1").Insert Shift:=xlDown
Range("A4").Select
ActiveWindow.FreezePanes = True
For Each rng In Rows("2:2").Cells
If rng.MergeCells Then
rng.MergeArea.Cells(1, 1).Select
Selection.Offset(-1, 1).EntireColumn.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next rng
End If
Next ws
Application.DisplayAlerts = True
If Not Application.ScreenUpdating = bScrUpdate _
Then Application.ScreenUpdating = bScrUpdate
Application.EnableCancelKey = xlInterrupt 'enable ESC key
End Sub
答案 0 :(得分:0)
要添加列并清除其所有格式,您可以执行以下操作:
Sub InsertCol()
Columns(1).Insert
Columns(1).ClearFormats ' might be unnecessary
End Sub
如果您想确定最后一行/列,请查看this question.