我是VB和Macro的新手。
我正在尝试从一张纸上复制单元格的内容并将其分配给一个字符串,以便我可以将字符串传递给我想要的任何位置。
这是我正在尝试做的事情,但它无法正常工作。
Dim findd As String
Columns("A:A").Select
Windows("Book111.xlsm").Activate
Range("A1").Select
Selection.Copy
findd = Selection.Paste
Windows("Book2.xls").Activate
Selection.Replace What:=findd, Replacement:="", LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
答案 0 :(得分:1)
将String变量赋值给Cell的方法如下:
findd = Range("A1").Value
由于使用Select语句几乎总是一个坏主意,我相信您的代码可以重写为:
Workbooks("Book2.xls").WorkSheets("whatever").Columns("A:A").Replace _
What:=Workbooks("Book111.xlsm").Worksheets("whatever").Range("A1").Value, _
Replacement:="", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
我不确定您在两个不同的工作簿中处于活动状态的工作表,因此您需要用适当的名称替换两次出现的whatever
。
编辑:根据请求如何对多个值执行此操作的注释进行更新:
Dim toBeReplaced As Range
For Each toBeReplaced In WorkBooks("Book111.xlsm").Worksheets("whatever").Range("A1:A30")
Workbooks("Book2.xls").WorkSheets("whatever").Columns("A:A").Replace _
What:=toBeReplaced.Value, _
Replacement:="", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Next