小编vba*_*ner的帖子

VBA - 在继续执行下一个Sub之前等待一段时间

所以我有一个Sub将运行另外两个宏,但我需要它运行第一个,然后等待1分钟,然后运行第二个

我在网上看过并收集了这个:

Sub MainExecute
stdB18
Application.Wait(Now + TimeValue(0:01:00"))
runB18
End Sub
Run Code Online (Sandbox Code Playgroud)

问题是,当我这样做时,它似乎不会等到stdB18运行之后,而是在运行任何东西之前等待1分钟.

我也尝试将wait内部runB18放在顶部,但这使得整个应用程序在运行之前也会等待.有什么方法可以让我这样做,我可以跑stdB18,然后等一分钟,然后跑runB18

谢谢!

编辑:我需要等待的原因是因为我需要等待我的QueryTable(刷新)stdB18加载,然后执行runB18我所拥有的循环将从表中提取数据.

excel vba excel-vba

3
推荐指数
2
解决办法
862
查看次数

比较两个对象数组,如果对象值相等则删除

我已经尝试修改这里的一些类似的解决方案,但我一直陷入困境,我相信我已经解决了部分问题,但主要的警告是:

有些对象有额外的键,这使得我的对象比较逻辑毫无用处。

我正在尝试比较两个对象数组。一个数组是原始数组,另一个数组包含我想要从原始数组中删除的项目。然而,还有一个额外的问题,因为第二个数组包含额外的键,所以我的比较逻辑不起作用。

一个例子会让这更容易,假设我有以下两个数组:

const originalArray = [{id: 1, name: "darnell"}, {id: 2, name: "funboi"}, 
{id: 3, name: "jackson5"}, {id: 4, name: "zelensky"}];

const itemsToBeRemoved = [{id: 2, name: "funboi", extraProperty: "something"}, 
{id: 4, name: "zelensky", extraProperty: "somethingelse"}];
Run Code Online (Sandbox Code Playgroud)

运行逻辑后,我的最终输出应该是这个数组:

[{id: 1, name: "darnell"}, {id: 3, name: "jackson5"}]

这是我当前的代码/逻辑,它进行比较但不处理额外的键。我应该如何处理这个问题?先感谢您。

const prepareArray = (arr) => {
  return arr.map((el) => {
    if (typeof el === "object" && el !== null) {
      return JSON.stringify(el);
    } else {
      return el;
    }
  });
};

const convertJSON …
Run Code Online (Sandbox Code Playgroud)

javascript arrays function object javascript-objects

1
推荐指数
1
解决办法
1万
查看次数