如何在Excel VBA中将所选内容赋值。将值复制到字符串
我不熟悉VB和宏 我试图从一张工作表中复制一个单元格的内容,并将其分配给一个字符串,这样我就可以将字符串传递到任何我想传递的地方 这就是我试图做的,但它不起作用如何在Excel VBA中将所选内容赋值。将值复制到字符串,excel,vba,Excel,Vba,我不熟悉VB和宏 我试图从一张工作表中复制一个单元格的内容,并将其分配给一个字符串,这样我就可以将字符串传递到任何我想传递的地方 这就是我试图做的,但它不起作用 Dim findd As String Columns("A:A").Select Windows("Book111.xlsm").Activate Range("A1").Select Selection.Copy findd = Selection.Paste Windows("Book2.xls").Activate Select
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
将字符串变量分配给单元格值的方法如下:
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
使用
findd=Range(“A1”)。值
,而不是三行Range(“A1”)。选择
Selection。复制
findd=Selection。粘贴
。您甚至可以使用What:=Workbooks(“Book111.xlsm”).Worksheets(“whatever”).Range(“A1”).Value
替换What:=findd
,这样您就不需要在替换之前使用findd
变量,甚至不需要激活工作簿。谢谢,如果我想再次执行此步骤。。。对于每个循环,我必须将范围从A1更改为A30。。我该怎么做?