我正在努力让我的工作生活更轻松,但我无法解决基本的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
获得自动化错误 - 不知道它意味着什么。
答案 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以及如何找到最后一行。