用于读取Excel中单元格值的宏代码&;在对应行的第二张图纸中输入给定值
正在寻找有关相当基本的excel宏的帮助,以读取一张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
谢谢 这可能会为您指明正确的方向:
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中的按钮启动,但我想消除此错误并了解其发生的原因。有什么想法吗?