我希望创建一个表,而不选择第一行并创建一个表。然后根据工作表名称命名表。
Sub ConvertDataToTables()
' For i = 3 To 5
' Sheets(i).Activate
' Rows(1).EntireRow.Delete
' Next i
For i = 3 To 5
On Error Resume Next
Sheets(i).Select
ActiveSheet.ShowAllData
Cells.AutoFilter
Range("A2").CurrentRegion.Select
If ActiveSheet.ListObjects.Count < 1 Then
ActiveSheet.ListObjects.Add.Name = ActiveSheet.Name
End If
Next i
表名用下划线和空格代替,我不希望这样,所以在我的代码中Sum Day = Sum_Day。我也希望选择不是选择顶行,而是选择下面的所有行。
2条答案
按热度按时间v440hwme1#
将表格转换为Excel表格(
ListObject
)oknwwptz2#
试试下面的代码。它将替换工作表名称中的空格。而且,它不使用
Select
来依赖ActiveSheet -有关详细阅读,请参阅How to avoid using Select in Excel VBA代码使用中间Range变量定义表格的范围。它从单元格A2(
startCell
)开始,并使用CurrentRegion
的最后一个单元格作为endCell
。请注意,您应该始终使用
Option Explicit
并声明所有变量,您应该从不使用On Error Resume Next
,除非您知道它们可能会失败的单个语句(并且您希望自己进行错误处理)。