gpt4 book ai didi

excel - VBA 错误 1004 应用程序定义错误或对象定义

转载 作者:行者123 更新时间:2023-12-04 21:11:20 24 4
gpt4 key购买 nike

如果可能的话,我会得到帮助。
我在同一个工作簿中有两个工作表。通过表格,我搜索“Dados”工作表并将结果复制到“Pesquisa”工作表。结果显示在 ListView 中。当我双击结果时,会出现: “错误 1004 应用程序定义错误或对象定义” .我不明白错误的原因,因为我已经查看了我的代码并且没有发现任何问题。

非常感谢您的帮助。下面,按照我的代码。

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)  
Sheets("Dados").Range("A" & Sheets("Pesquisa").Range("W" & ListBox1.ListIndex + 2)).Select
End Sub

最佳答案

Sheets("Dados").Range("A" & Sheets("Pesquisa").Range("W" & ListBox1.ListIndex + 2)).Select


很多事情都发生在一个单一的声明中,有几个原因导致事情出错。

把它分解。

首先获取您的 Worksheet对象:
Dim dadosSheet As Worksheet
Set dadosSheet = ActiveWorkbook.Worksheets("Dados") 'possible error 9 here

Dim pesquisaSheet As Worksheet
Set pesquisaSheet = ActiveWorkbook.Worksheets("Pesquisa") 'possible error 9 here

接下来我们要构建一个 Range W 列中的地址字符串, 来自 ListBox1.ListIndex , 并获得 rowIndex来自 pesquisaSheet 中的那个单元格:
Dim rowSourceAddress As String
rowSourceAddress = "W" & ListBox1.ListIndex + 2 ' definitely a positive integer

Dim rowIndex As Long
rowIndex = pesquisaSheet.Range(rowSourceAddress).Value ' possible error 13 here
Debug.Assert rowIndex > 0 ' suspect this assertion will fail

然后我们想再建一个 Range A 列中的地址字符串:
Dim targetAddress As String
targetAddress = "A" & rowIndex ' if rowIndex isn't a positive integer...

Dim targetRange As Range
Set targetRange = dadosSheet.Range(targetAddress) '...error 1004 is thrown here

最后我们要 Select该范围:
targetRange.Select

当然,它需要更多的代码——并且可以说是比需要的更多的局部变量。但是,由于所有内容都是明确的,并且每个成员都在自己的指令中调用,因此任何给定的指令只有一个失败的原因,这使得调试更加容易。

关于excel - VBA 错误 1004 应用程序定义错误或对象定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54367545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com