粘贴的单元格包含#N / A

时间:2018-11-01 15:48:27

标签: excel

当我从一列复制单元格时,仅粘贴的单元格始终具有#N / A而不是应具有的文本。

这是我发生的时候发生的事情

  • 在此受影响的列(列A)中复制一系列单元格,包括其中的任何单元格
  • 仅从受影响的列复制一系列单元格
  • 删除一行(该行整个长度的下一行的所有值都为#N / A
  • 从不受影响的列中复制多个单元格,并将其中的任何一个粘贴到受影响的列中

但是,如果我从受影响的列复制单个单元格,则应粘贴。如果我从受影响的列中复制多个单元格并将其粘贴到工作表中的其他位置,则它们会粘贴OK。

我不知道如何解决这个问题,在Google上搜索并没有找到答案。

受影响的列(A列)中的单元格是标准文本,或者是具有下拉列表数据验证类型的单元格;没有一个公式。

编辑-

我将其范围缩小到以下代码。该代码用于将用户在下拉列表中选择的值更改为其他值。

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20161026
    selectedNa = Target.Value
    If Target.Column = 1 Then
        selectedNum = Application.VLookup(selectedNa, 
Worksheets("refList_Hidden").Range("table_dropDown"), 2, False)
        If Not IsError(selectedNum) Then
            Target.Value = selectedNum

        End If
End If
End Sub

我很确定答案是检查范围是否仅包含一个单元格,如果确实包含该单元格,则运行VLOOKUP,如果包含多个单元格,则不要运行以上代码。有谁知道该怎么做?

2 个答案:

答案 0 :(得分:0)

作为对@SolarMikes评论的进一步解释-

如果范围A1:A3包含ABC,则B1中的此公式:
 =MATCH("A",A1:A3,0)将返回1。

如果您随后将单元格B1(包括公式)复制到单元格C1,则公式将更新为:
 =MATCH("A",B1:B3,0)-该范围内没有匹配项,因此它返回#N/A

要解决此问题,建议您使用absolute cell referencing
就是将A1:A3更改为$A$1:$A$3,或者按照Mike的建议复制和粘贴值。

答案 1 :(得分:0)

在上面的代码中,我只需要确保范围内只有一个单元而不是很多;

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20161026
    selectedNa = Target.Value
If Target.Column = 1 And Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
    selectedNum = Application.VLookup(selectedNa, Worksheets("refList_Hidden").Range("table_dropDown"), 2, False)
    If Not IsError(selectedNum) Then
        Target.Value = selectedNum

    End If
End If
End Sub