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

时间:2015-02-08 09:57:14

标签: vba excel-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

1 个答案:

答案 0 :(得分:1)

我认为您的工作簿中没有表格,其名称等于此功能/计算的结果:Left(AccName.Value, 20)