VBA Excel:当引用不同工作表中的单元格时,将打开对话框窗口



我为这件事伤透了脑筋,希望有人能帮忙。我有一个过程,将一个新工作表添加到Excel工作簿中,并将此工作表的基本信息添加到另一个工作表(同一工作簿)的概述中。一切正常,但不幸的是,只有一个例外。在新创建的工作表中,有一个单元格的值应该与单元格的值相同。我用过这句话:

c.Offset(0, 27).Value = "=" & Left(AccName.Value, 20) & "!N16"

此处的"Left(AccName.value,20)"等于工作表名称。不幸的是,这里的代码打开了一个对话框窗口,我可以在其中打开一个文件。我不知道为什么,因此也不知道如何解决这个问题。这里有人知道吗?

编辑:这是整个子:

Sub FillBestandsübersicht()
Dim c As Range
Dim i As Integer
i = 3
'Find next empty row
Set c = Sheets("Bestandsübersicht").Range("A3")
    Do Until c.Value = ""
        Set c = c.Offset(1, 0)
        i = i + 1
    Loop
'Fill Bestandsübersicht
   c.Value = AccName.Value
    c.Offset(0, 1).Value = ProgRef.Value
    c.Offset(0, 2).Value = QuoteNr.Value
    c.Offset(0, 3).Value = PolicyNr.Value
    If LdrY.Value = True Or LocY.Value = False Then c.Offset(0, 4).Value = "n.a."
    c.Offset(0, 5).Value = ddUnderwriters.Value
    c.Offset(0, 6).Value = IncDate.Value
    c.Offset(0, 7).Value = ExpDate.Value
        If LdrY.Value = True Then
        c.Offset(0, 8).Value = "Lead"
        Else
        c.Offset(0, 8).Value = "Follow"
        End If
    c.Offset(0, 10).Value = PMNPL.Value
        If LdrY.Value = True And LocY.Value = True Then
        c.Offset(0, 11).Value = AmountLoc.Value
        Else
        c.Offset(0, 11).Value = 0
        End If
        If CoiY.Value = True Then
        c.Offset(0, 12).Value = AmountCOI.Value
        Else
        c.Offset(0, 12).Value = 0
        End If
    c.Offset(0, 14).Value = "n"
    c.Offset(0, 15).Value = "n"
    If DocY.Value = False Then c.Offset(0, 16).Value = "x" Else c.Offset(0, 16).Value = "n"
    If LdrY.Value = False Or LocY.Value = False Or CoiY.Value = False Then _
        c.Offset(0, 17).Value = "x" Else c.Offset(0, 17).Value = "n"
    If FacY.Value = False Then c.Offset(0, 18).Value = "x" Else c.Offset(0, 18).Value = "n"
    If LdrY.Value = True Or LocY.Value = False Then c.Offset(0, 19).Value = "x" Else c.Offset(0, 19).Value = "n"
    If LdrY.Value = False Or LocY.Value = False Then c.Offset(0, 20).Value = "x" Else c.Offset(0, 20).Value = "n"
    c.Offset(0, 21).Value = "n"
    c.Offset(0, 26).Value = Left(AccName.Value, 20)
    c.Offset(0, 27).Value= "=" & Left(AccName.Value, 20) & "!N16"
'Sort Bestandsübersicht
    Range("A3:AB10000").Sort key1:=Range("A3:A10000"), order1:=xlAscending, Header:=xlNo
'AutoFit rows
    Sheets("Bestandsübersicht").Rows("3:" & i).EntireRow.autofit
End Sub

我认为您的工作簿中没有一张表的名称等于此函数/计算的结果:Left(AccName.Value, 20)

最新更新