如何引用其他工作簿中的值

时间:2015-08-04 09:03:40

标签: excel vba excel-vba

我正在努力让我的工作生活更轻松,但我无法解决基本的VBA问题。

经过一些研究,我得到了这一点:

Sub testowe()

Dim wbk1 As Workbook
Dim wbk2 As Workbook
Dim y As Variant
Dim sht As Worksheet

Set wbk1 = ActiveWorkbook
Set wbk2 = Workbooks.Open("U:\ZBROJARNIA\_WSPOLNE\test.xlsx")

Set sht = wbk2.Worksheets("Sheet1")

y = wbk2.sht.Columns("A").Find("", Cells(Rows.Count, "A"), xlValues, xlWhole, , xlNext).Row

End Sub

首先,我需要找到“test.xlsx”中的最后一个空单元格才能从那里开始。 所有这一切只有另一个工作簿活动(我想尽可能减少交互的数量,即我自己打开test.xlsx工作簿)。但不知怎的,它不起作用。

出现“对象不支持此属性或方法”的错误。这可能是一些基本的参考错误,但我不知道如何处理它。

编辑: 在下面的建议之后,我将y =改为

y = sht.Columns("A").Find("", sht.Cells(sht.Rows.Count, "A"), xlValues, xlWhole,, xlNext).Row

但我收到“下标超出范围”错误。

EDIT2:

将sht引用更改为

Set sht = wbk2.Sheets(1)

它有效!感谢下面的提示。

EDIT3: 好的,不是一切都有效...... 当前代码如下所示:

Sub testowe()

Dim wbk1 As Workbook
Dim wbk2 As Workbook
Dim y As Variant
Dim sht As Worksheet
Dim LA As Integer
Dim Z As Variant

Set wbk1 = ActiveWorkbook
Set wbk2 = Workbooks.Open("U:\ZBROJARNIA\_WSPOLNE\Przeroby-podsumowanie.xlsx")

Set sht = wbk2.Sheets(1)

y = sht.Columns("A").Find("", sht.Cells(sht.Rows.Count, "A"), xlValues, xlWhole, , xlNext).Row
x = Application.Sheets.Count

 LA = 2

Do While LA < x

Z = wbk1.Sheets(LA).Cell("C10").Value

LA = LA + 1

Loop

End Sub

获得自动化错误 - 不知道它意味着什么。

2 个答案:

答案 0 :(得分:0)

在我看来,最后一个代码行至少有一个错误:

试试这个:

Sub testowe()

Dim wbk1 As Workbook
Dim wbk2 As Workbook
Dim y As Variant
Dim sht As Worksheet

Set wbk1 = ActiveWorkbook
Set wbk2 = Workbooks.Open("U:\ZBROJARNIA\_WSPOLNE\test.xlsx")

Set sht = wbk2.Worksheets("Sheet1")

y = sht.Columns("A").Find("", Cells(Rows.Count, "A"), xlValues, xlWhole, , xlNext).Row

End Sub

因为sht已经是wbk2.Worksheets(&#34; Sheet1&#34;)

答案 1 :(得分:0)

问题是您的单元格对象未正确限定。他们仍然指的是当前的工作簿。此外,您不需要wbk2.sht

这是你在尝试的吗?

y = sht.Columns("A").Find("", sht.Cells(sht.Rows.Count, "A"), xlValues, xlWhole,, xlNext).Row

我已经解释了Here以及如何找到最后一行。