VBA没有按预期格式化表

时间:2017-01-09 16:24:23

标签: excel vba excel-vba

大家好我已经继承了这个VBA,目前正在给我两个错误:

1)运行时错误'91': 对象变量或未设置块变量

2)运行时错误'1004': 对象'Range'的方法'Offset'失败

VBA很长,正如我所说道歉,因为我继承了它。

res.json().data

1 个答案:

答案 0 :(得分:1)

如果编写清楚,您会发现代码更易于诊断和调整。我不打算完成整个宏,但这里有一个代码开头应该是什么样子的样本!这从您的第一行到Range("K5:O5").Select行。

Dim KPAMSheet as Worksheet
Set KPAMSheet = Sheets("Key Performance Audience Metric")

With KPAMSheet.AutoFilter.Sort

    .SortFields.Clear

    .SortFields.Add Key:=KPAMSheet.Range("C5:C55"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply

End With

KPAMSheet.Range("B5:H5").AutoFilter

请注意,您应该避免使用SelectSelection,它迟早会咬你的!如果您花了半个小时来修改上面的代码,它会更短,更清晰,更不容易出错......

请参阅此帖子:How to avoid using Select in Excel VBA macros

此外,我将在此重复我对如何调试的评论:

按F8启动潜水艇,然后反复按F8,您可以踩到下一行。这样做直到错误发生,你会知道哪一行导致了问题。我相信Mac上的等效快捷方式是Cmd + Shift + I。或者,转到Debug菜单,然后选择Step Into