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 我是否不正确地使用Columns()属性,如果是,是否有好的解决方法?_Vba_Excel - Fatal编程技术网

Vba 我是否不正确地使用Columns()属性,如果是,是否有好的解决方法?

Vba 我是否不正确地使用Columns()属性,如果是,是否有好的解决方法?,vba,excel,Vba,Excel,我目前正在解决一个问题 类型不匹配错误 在我正在编写的一个宏中,我编写了一个简短的子程序来深入研究具体问题。该子例程应在A列中循环,在第1-10行中输入数字1-10 Sub looptest() Dim rRange As Range Dim rCell As Range Dim i As Integer Set rRange = ThisWorkbook.Worksheets(1).Columns(1) i = 0 For Each rCel

我目前正在解决一个问题

类型不匹配错误

在我正在编写的一个宏中,我编写了一个简短的子程序来深入研究具体问题。该子例程应在A列中循环,在第1-10行中输入数字1-10

Sub looptest()
    Dim rRange As Range
    Dim rCell As Range
    Dim i As Integer

    Set rRange = ThisWorkbook.Worksheets(1).Columns(1)
    i = 0

    For Each rCell In rRange
        If i < 10 Then
            i = i + 1
            rCell.Value2 = i

        End If

    Next rCell

End Sub
Sub-looptest()
模糊排列为范围
变暗rCell As范围
作为整数的Dim i
设置排列=此工作簿。工作表(1)。列(1)
i=0
对于安排中的每个rCell
如果我<10,那么
i=i+1
rCell.Value2=i
如果结束
下一个rCell
端接头
而是用1填充A列中的每个单元格。在调试模式下单步遍历它显示,rCell引用的不是单个单元格,而是整个列

我发现如果我替换

Set-rRange=thispoolk.工作表(1).列(1)

Set-rRange=thispoolk.Worksheets(1).范围(“A1:A100”)

宏按预期工作,但是我更希望能够在生产代码中使用Columns()或类似的东西


我是否未正确使用Columns()属性,如果是,是否有一个好的解决方法?

从以下更改开始:

 Set rRange = ThisWorkbook.Worksheets(1).Columns(1).Cells

 Dim i As Long

使用
.Cells
让我们可以循环查看列中的单元格,而不是工作表中的列。

我只是按原样尝试了您的代码,没有收到任何错误。按照您编写的方式,循环只发生一次。据我所知,您使用的是正确的。为什么要循环104万次,只加载前10次?@ScottCraner,因为这是一个快速测试子,我不担心性能。生产代码看起来更像此工作簿。工作表(1)。为rRange.Cells中的每个rCell使用drange.Column(1)
,添加.Cells属性完成了完美修复。非常感谢!