我使用相同的宏格式化两个不同的报告。两个电子表格之间的性能截然不同。宏在第一个报告上即时运行,另一个需要大约10秒钟。我把它缩小到使单元格A1变粗的语句。省略粗体语句时,两个电子表格都会立即执行宏。我尝试了以下格式化单元格A1的方法。
Range("A1").Font.Bold = True
Range("A1:A1").Font.Bold = True
With Range("A1")
.Font.Bold = True
End With
ActiveSheet.Cells(1, 1).Font.Bold = True
据我所知,.Font.Bold = True
是使单元格变粗的唯一方法,因此使用其他命令无法避免问题。以上是Google建议调用此类操作的所有方式。两个电子表格都是.xls扩展名。为什么在执行相同的语句时,一个电子表格的性能会有很大的不同?
答案 0 :(得分:0)
可能有很多原因。我认为更改需要ScreenUpdating
,并且两个工作表都使用不同的内存来计算您的工作表布局,例如有形状,枢轴,图表,隐藏的行等。
要解决此问题,请在计算之前关闭Application.ScreenUpdating = False
'Your code here
Application.ScreenUpdating = True
。然后再打开它,如下所示
AutomaticCalculations
此外,为了优化您的代码,请使用以下内容:
.xslb
$(function () {
var consoleSelect = $('.console-select'),
gameConsoleOptions = $('.console-select option');
$(".game-select").on("change", function () {
var selectedGame = $(this).find("option:selected").data('game'),
games = [],
selectedCategory = $(this).find("option:selected").closest('optgroup').attr('label');
if (selectedGame) {
games = $.makeArray($(this).find('option[data-game="' + selectedGame + '"]').map(function () {
return $(this).closest('optgroup').attr('label');
}));
}
if (games.length) {
gameConsoleOptions.hide();
gameConsoleOptions.filter(function (i, v) {
return games.indexOf($(v).text()) != -1;
}).show();
consoleSelect.find('option:contains('+selectedCategory+')').prop('selected', 'selected');
} else {
gameConsoleOptions.show();
}
});
});