Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 使用偏移功能时出现运行时错误1004_Vba - Fatal编程技术网

Vba 使用偏移功能时出现运行时错误1004

Vba 使用偏移功能时出现运行时错误1004,vba,Vba,如何检索已定义单元格旁边的单元格?单元格“A2”在处存储,我想显示我在单元格“B2”中显示的奥地利,而不是在处显示的。我需要在For循环中使用此功能 AT Austria IT Italy FR France 我需要使用AT进行For循环(出于其他目的),但我想写下国家名称(奥地利或意大利等) 下面的宏提供所需的运行时错误424对象 Sub test() Dim country Dim country_list Dim counter country_l

如何检索已定义单元格旁边的单元格?单元格“A2”在处存储
,我想显示我在单元格“B2”中显示的
奥地利
,而不是在
处显示的
。我需要在For循环中使用此功能

AT  Austria
IT  Italy
FR  France
我需要使用AT进行For循环(出于其他目的),但我想写下国家名称(奥地利或意大利等)

下面的宏提供所需的运行时错误424对象

Sub test()
    Dim country
    Dim country_list
    Dim counter

    country_list = Worksheets("Sheet1").Range("A2:A4")
    counter = 1

    For Each country In country_list
        Worksheets("Sheet2").Cells(counter, 1).Value = country.Offset(0, 1).Value
        counter = counter + 1
    Next country
End Sub
现在,您没有将有效的范围传递给
范围(国家)…
方法。您已将
country
定义为单元格“A2”的值


1004错误表示您正试图访问不存在或无法访问的range by address。在这种情况下,该范围根本不存在。

您只需使用set即可按您想要的方式工作

Set country_list = Worksheets("Sheet1").Range("A2:A4")

如果变量未分配对象,则返回错误。

谢谢David,这很有帮助。但是,我仍然希望引用country,因为在For循环中,我不能说“A2”,因为它也可以是“A3”etcso,我需要做什么才能使以下内容正常工作:country.Offset(0,1).value您需要显示更多代码<代码>国家/地区
必须至少是有效的范围对象。谢谢David。。。我改变了我的问题(提供了更多的代码),同时我得到了答案。谢谢你的帮助@怀斯曼Np。如果这解决了您的问题,并且您觉得它很有帮助,那么您可以在SO中作为表示感谢的一种方式。
Set country_list = Worksheets("Sheet1").Range("A2:A4")