嗨请帮我解决下面的问题,
Sub movedata()
Call select_data(.Range("B6:B12"))
End Sub
Function select_data(C As Range)
Worksheets("sheet1").Range("I6:I16") = Worksheets("Sheet1").Range(C).Value
End Function
我看不出我错在哪里,
谢谢,
答案 0 :(得分:1)
C
已经是Range
对象,因此无需将其传递给Range()
函数(无论如何都需要字符串)来创建它。
变化:
Worksheets("sheet1").Range("I6:I16") = Worksheets("Sheet1").Range(C).Value
要:
Worksheets("sheet1").Range("I6:I16") = C
答案 1 :(得分:0)
您将范围混淆为Range object及其Address property。
方法1:
Sub movedata()
Call select_data(Range("B6:B12").address)
End Sub
Function select_data(C As string)
with Worksheets("sheet1")
.Range("I6:I16") = .Range(C).Value
end with
End Function
方法2:
Sub movedata()
Call select_data(Worksheets("sheet1").Range("B6:B12"))
End Sub
Function select_data(C As range)
C.parent.Range("I6").resize(C.rows.count, C.columns.count) = C.Value
End Function
不过,将B6:B12的值填入I6:I16的细胞会有一些困难。似乎有4个缺失值。