复制并粘贴到另一个单元格中

时间:2013-11-09 00:24:29

标签: excel vba excel-vba

我们正在尝试查找一系列寻找特定字符串的单元格。在一种情况下,字符串是可访问性,但整个字符串是accessibility3.2。然后我们要将字符串粘贴到另一张纸上的单元格中。

然后下一次循环它可能是accessibility5.8

这是我们编写的一些代码:

srtDate = ThisWorkbook.Sheets("Website Quality").Cells(9, 3).Value

rng = ThisWorkbook.Sheets("Sheet2").Column(1).Find(What:=Accessibility, _
                    LookIn:=x1Values, LookAt:=x1Whole, MatchCase:=True)

srtDate.Value = rng.Value

任何帮助都会很棒 感谢

2 个答案:

答案 0 :(得分:1)

也许这就是你想要的(我假设“辅助功能”是一个文字字符串)。

更改

rng = ThisWorkbook.Sheets("Sheet2").Column(1).Find(What:=Accessibility, _ LookIn:=x1Values, LookAt:=x1Whole, MatchCase:=True)

Set rng = ThisWorkbook.Sheets("Sheet2").Columns(1).Find(What:="Accessibility", _
                LookIn:=x1Values, LookAt:=x1Part, MatchCase:=True)

答案 1 :(得分:0)

您的.Find显然是Range.Find方法,因为它包含WorksheetFunction.Find方法中不存在的参数。

Range.Find方法需要一个计算结果为范围对象的表达式。

ThisWorkbook.Sheets("Sheet2").column(1)

不评估范围。您可以通过进入立即窗格

来测试
ThisWorkbook.Sheets("Sheet2").column(1).select

将返回错误438

  

Object不支持此方法或属性

ThisWorkbook.Sheets("Sheet2").Range("A:A").select

在“立即”窗格中工作正常,因此请将ThisWorkbook.Sheets("Sheet2").Column(1)替换为ThisWorkbook.Sheets("Sheet2").Range("A:A")

Range.Find方法返回的是一个范围,因此应该将返回的变量定义为范围

Dim rng as Range

如果模块顶部没有Option Explicit,则 VBA假定所有变量都是变体类型,但变体类型不能与对象类型互换。

如果您通过工具>将VBA IDE设置为始终“需要变量声明”选项>编辑器选项卡Option Explicit将添加到项目中的每个模块中,您不会遇到不正确的变量调用。

现在无法使用ObjectName = ...分配对象。它们必须使用Set ObjectName = ... 设置,并且返回值必须与要设置的对象的类型相同。

如果您Dim rng as Range,则Set rng = ...右侧的方法必须返回相同类型的对象,否则将发生错误。

您的What:=Accessibility,正在尝试查找可能不存在的名为Accessibility的变量的内容。如果您"Accesibility",即使字符串LookAt:=xlPart嵌入其他字符中,它也会有效。

总结:

定义您的对象Dim rng as Range

并更改您的行

rng = ThisWorkbook.Sheets("Sheet2").Column(1).Find(What:=Accessibility, _
                LookIn:=x1Values, LookAt:=x1Whole, MatchCase:=True)

为:

With ThisWorkbook.Sheets("Sheet2").Range("A:A")
    Set rng = .Find(what:="Accessibility, LookIn:=xlValues, LookAt:=xlPart)   
End With

应该为您留下可以使用的rng.value