Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于读取Excel中单元格值的宏代码&;在对应行的第二张图纸中输入给定值_Excel_Vba_Macos - Fatal编程技术网

用于读取Excel中单元格值的宏代码&;在对应行的第二张图纸中输入给定值

用于读取Excel中单元格值的宏代码&;在对应行的第二张图纸中输入给定值,excel,vba,macos,Excel,Vba,Macos,正在寻找有关相当基本的excel宏的帮助,以读取一张excel工作表中某个单元格中的值,然后在第二张工作表中找到该值,并在该行的指定单元格中输入预定义值 要打破它 读取活页_1中给定单元格的值(这将是一个ID号) 转到第2页,在第a列中找到ID号 转到该行中的给定列 将预定义的值写入单元格 谢谢 这可能会为您指明正确的方向: Sub FindID() Dim ID_Number As String Dim col As Integer Dim rw As Integer Dim WS As W

正在寻找有关相当基本的excel宏的帮助,以读取一张excel工作表中某个单元格中的值,然后在第二张工作表中找到该值,并在该行的指定单元格中输入预定义值

要打破它

  • 读取活页_1中给定单元格的值(这将是一个ID号)
  • 转到第2页,在第a列中找到ID号
  • 转到该行中的给定列
  • 将预定义的值写入单元格

  • 谢谢

    这可能会为您指明正确的方向:

    Sub FindID()
    
    Dim ID_Number As String
    Dim col As Integer
    Dim rw As Integer
    Dim WS As Worksheet
    
    Set WS = Activeworkbook.Sheets("sheet_2")
    
    ID_Number = Activecell.Value 'reads value of ID_Number in WS 1; assumes you have selected the ID_Number you want to work with
    
    With WS
        .Activate
        .Range("A1").Activate
    End With
    
    WS.Range("A:A").Cells.Find(What:=ID_Number, After:=ActiveCell, LookIn:=xlFormulas, _  'finds ID_Number in WS 2
                             LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                             MatchCase:=True, SearchFormat:=False).Activate
    
    rw = Activecell.Row
    
    col = 'whatever column you want to look at, expressed as an integer; A=1, B=2,...
    
    WS.Cells(rw, col).Value = ID_Number 'write ID_Number to cell
    
    End Sub
    

    如果您想使代码更具动态性,也可以使用“Cells”对象的“Find”方法搜索要查看的列。

    感谢您的快速响应。当我尝试编译上面的代码时,我得到了一个针对“SearchFormat:=False”的“命名参数”错误@在需要\u宏\u帮助的情况下,我相信您得到错误的原因是“Find”正在搜索“WS”中“ActiveCell”之后的每个单元格,但没有ActiveCell。在使用“Find”方法之前,我刚刚编辑了激活“WS”对象的代码,并修复了这个问题(在我的计算机上工作)。另一个选项是去掉“Find”中的参数(因此它的内容是WS.Range(“A:A”).Cells.Find(ID\u Number)),但我认为您会发现它很有用,可以查看“Find”的实际工作原理。@in\u Need\u of\u Macro\u Assistance再次尝试我提交的答案代码,但对于“Find”方法,请使用:WS.Range(“A:A”).Cells.Find(ID\u Number)。激活。我上次评论的打字错误。如果您需要替换变量或工作表名称,那没关系。检查您的“col”值(115对应于列“DK”…只需再次检查这是您想要的)。是的,列DK是正确的。事情开始起作用了,但是在它将文本字符串放入的行中存在一些错误和不稳定的行为。这种奇怪的行为似乎取决于宏运行前表2中哪些单元格处于活动状态。我已将当前使用的代码更新到此线程中。也许完整的搜索功能将有助于解决一些bug?如果在启动宏时工作表_2处于活动状态,而不是在工作表_1中,则可能会出现我描述的将预定义的“Accept”值写入工作表_2上错误行的bug。宏将通过单击表1中的按钮启动,但我想消除此错误并了解其发生的原因。有什么想法吗?