VBA - 激活已打开的工作簿

时间:2016-09-08 13:23:15

标签: excel vba excel-vba

我想阅读工作簿并将一些单元格复制到另一个工作簿中。 该代码的目的是将不同工作表中的单元格从一个文件复制到另一个文件。

对于这个建议,我创建了这段代码:

from __future__ import division
import numpy as np
from numpy.fft import rfft, rfftfreq
from numpy import absolute
import matplotlib.pyplot as plt
from scipy.signal import medfilt, hilbert
import pandas as pd

chunk = 120
LOW_CUT = 0.3
HIGH_CUT = 5.0
FS = 99
freqs = rfftfreq(chunk, 1 / FS)
_accel = pd.read_csv('data.csv')
for k, g in _accel.groupby(np.arange(len(_accel)) // chunk):
    _v = g['v'].values
    _v = medfilt(_v, 7)
    _v = butter_bandpass_filter(_v, LOW_CUT, HIGH_CUT, FS, order=4)
    v = 1 / chunk * absolute(rfft(_v))
    plt.stem(freqs, v)

在完成第一张工作表中的流程之后,我会比较新文件中是否有任何其他工作表从流程开始。如果不是(总是)我创建一个新的工作表开始复制和粘贴的过程,但函数ThisWorkbook和ActiveWorkbook正在同一张工作(从同一个工作簿复制和粘贴),而不是从一个文件到另一个文件。

这就是为什么我打开第一个工作簿,但是当复制和粘贴过程结束时,会显示以下消息:

Error image

我该怎么做才能解决这个问题?

全部谢谢

1 个答案:

答案 0 :(得分:1)

创建工作簿对象并分配您要打开的工作簿:

Dim wb as Workbook
Set wb = Workbooks.Open(Filename:=file, UpdateLinks:=0)

然后您可以引用此变量而不是ActiveWorkbook

因此,要更改代码所在的工作簿中的内容,请使用ThisWorkbook

要更改其他工作簿中的内容,请使用wb