如何更正范围(单元)中的误差?

时间:2019-08-14 07:11:56

标签: excel vba

编写非常简单的脚本并发生以下问题,当我输入代码时,机器人停止运行:

 .Range(.Cells(n, 1)).PasteSpecial Paste:=xlPasteValues, Transpose:=True

问题是,当我制作Range("A1")时没有错误,但是当我尝试在此处插入某种迭代机制时,出现了一些故障。

首先,我认为它是未定义的单元格,所以我使用了With函数。

For n = 1 To k

    Sheets("Sheet1").Range(Sheets("Sheet1").Cells(12, n), (Sheets("Sheet1").Cells(52, n)).Copy


        With Worksheets("Sheet2")  


        .Range(.Cells(n, 1)).PasteSpecial Paste:=xlPasteValues, Transpose:=True


        End With

1 个答案:

答案 0 :(得分:0)

由于上面的家伙,答案很简单:

For n = 1 To k

    Sheets("Sheet1").Range(Sheets("Sheet1").Cells(12, n), (Sheets("Sheet1").Cells(52, n)).Copy


        With Worksheets("Sheet2")  


        .Cells(n, 1)).PasteSpecial Paste:=xlPasteValues, Transpose:=True


        End With
  

因为.Range(.Cells(n,1))等效于.Range(.Cells(n,1).Value)。那不是您想要的。请注意,我认为您不需要在此处循环,您应该能够一次性转换整个范围。 – BigBen