我希望每次打开任何工作簿时都运行 PERSONAL.XLAM 文件中的 Sub。以下方法有效,但仅在没有打开其他工作簿的情况下打开工作簿时有效。
Private Sub Workbook_Open()
MsgBox "Hello."
End Sub
Run Code Online (Sandbox Code Playgroud)
我怎样才能在打开额外的工作簿时完成这项工作?
我需要在工作表中选择多个范围以在其上运行各种 VBA 代码。范围始终从第 84 行开始,但结束取决于数据向下的距离。我一直使用如下代码分别选择这些范围:
Sub SelectRange()
Dim LastRow As Integer
LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("A84:B" & LastRow).Select
End Sub
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我不知道如何一次选择多个范围。我已经尝试了我能想到的一切:
什么都不起作用。运行其中任何一个时我都会遇到运行时错误。
我无法弄清楚如何在 VBA 中为 SumIf 语句设置多个条件。这就是我现在使用的方法,仅使用一个标准来设置名为 Count_1 的变量的值。
Count_1 = Application.SumIf(Range("K84:K" & LastRow), "B*", Range("G84:G" & LastRow))
Run Code Online (Sandbox Code Playgroud)
我需要添加另一个标准。除了 K 列中的值需要以“B”开头之外,L 列中的值也需要为 80。
我知道这可以在 Excel 公式中使用 SumIfs 来完成,但我需要它在 VBA 中。
我使用一个小jQuery平滑滚动到锚定链接。这样就可以了,但是单击链接不会更新地址栏中的URL。我希望URL更新以包含单击链接的新哈希。
我在这里发现了类似的问题,但是它们的原始代码与我的代码有很大不同,以至于我无法弄清楚如何将其实现到我的代码中。
$('a[href^="#"]').click(function () {
$('html, body').animate({
scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top
}, 800);
return false;
});Run Code Online (Sandbox Code Playgroud)
<html>
<body>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<style>
p {
margin-bottom: 200px;
}
</style>
</head>
<a href="#anchor1">Link to Anchor 1</a>
<a href="#anchor2">Link to Anchor 2</a>
<a href="#anchor3">Link to Anchor 3</a>
<a href="#anchor4">Link to Anchor 4</a>
<a name="anchor1"></a>
<p>Anchor 1</p>
<a name="anchor2"></a>
<p>Anchor 2</p>
<a name="anchor3"></a>
<p>Anchor 3</p>
<a name="anchor4"></a>
<p>Anchor 4</p>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我之前在Code Review中发布了这个,我想这不是正确的地方.希望这是.
我已经为Excel工作表订单表单的各种操作创建了几十个Subs.每天都有数百个这样做,必须检查很多东西.
例程是当有人打开其中一个工作表时,他们做的第一件事就是运行一个调用其他几个工作表的宏.所以它基本上是这样的:
Sub AllMacros()
Call Macro1
Call Macro2
Call Macro3
Call Macro4
Call Macro5
Call Macro6
Call Macro7
Call Macro8
Call Macro9
Call Macro10
Call Macro11
Call Macro12
Call Macro13
Call Macro14
Call Macro15
Call Macro16
Call Macro17
Call Macro18
Call Macro19
Call Macro20
End Sub
Run Code Online (Sandbox Code Playgroud)
我这样做是因为有时只需要运行其中一个Subs,因此它们将被单独执行.
我的主要问题是:这种技术本身不是一个好主意吗?我知道我没有显示所有代码,但这不是重点.在这里发布的代码太多了.我想我正在寻找共识的答案是"是的,没关系." 或者"不,这样做会更好."