Excel 按标题重新格式化表列列表
我肯定有一些明显的东西我错过了,所以任何帮助都是感激的。我正在使用一个表格式的数据表。我有几个标题,我想用通用数字格式重新格式化。我不确定输入的数据是否会保持不变,因此我想我希望使用名称,而不是列号或字母。这是一个更大的项目的一部分,但这是第一步,所以其余的都与现在无关 当我运行这个时,我得到了错误 运行时错误438对象不支持此属性或方法 在Excel 按标题重新格式化表列列表,excel,vba,Excel,Vba,我肯定有一些明显的东西我错过了,所以任何帮助都是感激的。我正在使用一个表格式的数据表。我有几个标题,我想用通用数字格式重新格式化。我不确定输入的数据是否会保持不变,因此我想我希望使用名称,而不是列号或字母。这是一个更大的项目的一部分,但这是第一步,所以其余的都与现在无关 当我运行这个时,我得到了错误 运行时错误438对象不支持此属性或方法 在.Union块上 Dim Table As Excel.ListObject Dim SortColIndex As Long Dim SortCol As
.Union
块上
Dim Table As Excel.ListObject
Dim SortColIndex As Long
Dim SortCol As Range
Private Sub DefineVars()
Set Table = ActiveWorkbook.Worksheets("Data").ListObjects("_Data")
SortColIndex = Table.ListColumns("Bill to Account Number").Index
Set SortCol = Table.ListColumns(SortColIndex).Range
End Sub
Sub Fedex()
Call DefineVars
With Table
.Union(.ListColumns("Bill to Account Number").DataBodyRange, _
.ListColumns("Net Charge Amount").DataBodyRange, _
.ListColumns("Tracking ID Charge Amount").DataBodyRange, _
.ListColumns("Tracking ID Charge Amount9").DataBodyRange, _
.ListColumns("Tracking ID Charge Amount11").DataBodyRange).Select
End With
With Selection
.NumberFormat = "General"
End With
With Table
.Sort.SortFields.Clear
.Sort.SortFields.Add _
Key:=SortCol, _
SortOn:=xlSortOnValues, _
Order:=xlDescending
With .Sort
.Header = xlYes
.Apply
End With
End With
End Sub
尝试下面的代码,我在代码注释中添加了解释:
Option Explicit
Sub Fedex()
Dim Tbl As ListObject
Dim TblRng As Range
'Call DefineVars
' set the ListObject (assuming you have 1 table in your worksheet)
Set Tbl = Worksheets("Sheet1").ListObjects(1) ' rename according to your sheet's name
With Tbl
' set the Range inside the ListObject (don't use Select)
Set TblRng = Application.Union(.ListColumns("Bill to Account Number").DataBodyRange, _
.ListColumns("Net Charge Amount").DataBodyRange, _
.ListColumns("Tracking ID Charge Amount").DataBodyRange, _
.ListColumns("Tracking ID Charge Amount9").DataBodyRange, _
.ListColumns("Tracking ID Charge Amount11").DataBodyRange)
End With
With TblRng
.NumberFormat = "General"
End With
' rest of your code ...
End Sub
您好@Shai Rado,我在我的原始代码中添加了一些东西,以显示我声明但忘记保留在问号中的变量。@MarkS。您只需将
Tbl
与Table
进行交换,代码就可以正常工作了。不用担心,我已将所有代码整理好。我不太喜欢吃noobie。