将活动的单元格地址分配给范围变量



我在此行上获得Error 1004 "Application-defined or Object-defined error"

 `ws2.range(dstRef).offset(srn,0).value= srn+1`

为什么?

Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("Tabelle1")
Set ws2 = Worksheets("Packinglist_Annexure-1")
Dim srcRef, dstRef, tempAdr As Range
Set dstRef = Range("C19")
Dim k, srn As Integer
k = reqRow
srn = 0
For k = reqRow To row1
    ws2.Activate
    ws2.Range(dstRef.Address).Offset(srn, 0).Value = srn + 1
    ws1.Activate
    ws1.Range(reqAddr.Address).Offset(0, srn).Copy Destination:=ws2.Range(dstRef.Address).Offset(1, srn)
    srn = srn + 1
Next k

我相信您正在寻找范围。address属性,尽管我尚不清楚range(" c19"(没有父工作表参考。

Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Worksheets("Tabelle1")
Set ws2 = Worksheets("Packinglist_Annexure-1")
Dim srcRef As Range, dstRef As Range, tempAdr As Range
Set dstRef = ws1.Range("C19")
Dim srn As Integer
srn = 0
ws2.Activate
ws2.Range(dstRef.ADDRESS).Offset(srn, 0).Value = srn + 1

是。在.cells定义时需要.RANGE?

您需要在昏暗的线中声明所有vartypes。

dim a, b, c, d as string

上面仅作为字符串DIMMS D;其他一切都是变体。

您要么使用

ws2.Range(dstRef.Address).Offset(srn, 0).Value = srn + 1

ws2.Range("C19").Offset(srn, 0).Value = srn + 1

顺便说一句,您最好明确地声明所有变量,否则它们会隐含地假定为Variant类型:

Dim ws1 , ws2 As Worksheet ' w1 is of Variant type and w2 is of Worksheet type
Dim ws1 As Worksheet, ws2 As Worksheet ' both w1 and w2 are of Worksheet type

当您尝试将字符串(指定要使用的单元格(设置为范围而不是字符串时,错误正在发生。您可以将DSTREF声明为字符串,并在该行上使用它,例如

Dim srcRef, tempAdr As Range
Dim dstRef As String
Dim srn As Integer
dstRef = "C19"
srn = 0
ws2.Activate
ws2.Range(dstRef).Offset(srn, 0).Value = srn + 1

最新更新