当我从一列复制单元格时,仅粘贴的单元格始终具有#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,如果包含多个单元格,则不要运行以上代码。有谁知道该怎么做?
答案 0 :(得分:0)
作为对@SolarMikes评论的进一步解释-
如果范围A1:A3
包含A
,B
和C
,则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