2017-03-16 49 views
-1

进入山口℃的帐户号码,vlookup表中获得一个成员使用差异宏文件和标准之间细胞锁定使用IFERROR(VLOOKUP)时

=IFERROR(VLOOKUP(C4,MembersAndIDList,2,FALSE),""). 

的代码工作正常,除非命名为山口d将所使用的类型放入Col C中,并按下删除键,因为这会删除公式。公式用于Col D中的所有单元格 使用Excel 2010 - 我可以锁定Vlookup列以防止无意中在xlsx文件上键入内容,但锁定对xlsm文件不起作用。有什么建议么?

+0

我使用的是Excel 2013和Excel 2010,在这两个版本中,我都可以在xlsm文件中的电子表格中锁定单元格。 (这个问题与[excel-vba]有什么关系?) – YowE3K

回答

0

将此代码粘贴到用户应在其中输入会员编号的工作表的代码模块中。

私人小组Worksheet_Change(BYVAL目标作为范围)

Dim Rng As Range 
Dim Member As String 

Set Rng = Range("MembersAndIDList") 
With Target 
    If .Row < 2 Then Exit Sub      ' exclude first row at the top 

    If .Column = 3 Then        ' Column 3 = "C" 
     Application.EnableEvents = False 
     On Error Resume Next 
     Member = WorksheetFunction.VLookup(.Value, Rng, 2, False) 
     If Err Then 
      MsgBox "Please enter a valid member number", _ 
        vbExclamation, "Invalid entry" 
      .Value = "" 
      .Select 
     Else 
      Cells(.Row, 4).Value = Member   ' column 4 = "D" 
     End If 
     Application.EnableEvents = True 
    End If 
End With 

末次

您可以修改行< 2排除更多标题行,改变你的列表的名称或消息文本,当然还有C和D列,但是您需要在未启用宏的工作簿上继续使用工作表函数,因此不能使用此代码。

+0

感谢您提供的信息,将为您提供帮助。发现允许用户在xlsx情况下选择锁定单元格和选择未锁定单元格可防止覆盖公式,但宏文件中的相同条件允许覆盖。取消选择允许选择锁定的单元格可以防止我遇到的问题 – david