【问题标题】:Type Mismatch Error - and partial search类型不匹配错误 - 和部分搜索
【发布时间】:2017-12-12 02:30:35
【问题描述】:
Dim FIND_VALUE As String
Dim j As Double

FIND_VALUE = "RDD1250 Due SO not Billed"

  For j = 1 To Worksheets.Count
     If Worksheets(j).Range("C7").Value = FIND_VALUE Then
     Worksheets(j).Activate
     Range("B13", Cells(Range("B13").Row, Columns.Count).End(xlToLeft).End(xlDown)).Select
     Selection.Copy

此代码给出类型错误不匹配...当我尝试运行此代码时,它会给出正确的结果,但是当我尝试为其他一些工作表运行它时给出类型错误不匹配.. 有人可以帮助解决这个问题吗?搜索..我也尝试使用“*”,但没有得到结果。

【问题讨论】:

  • 它可能无法清除错误,但您应该将j 声明为Long 而不是Double。引入明确的工作表变量来限定您的Range 也很好,而不是依赖于Activate
  • 你在哪里得到错误?你在哪里粘贴?从您的代码中显示更多内容,很可能您没有正确粘贴。

标签: vba excel


【解决方案1】:

虽然我看不到您将数据粘贴到哪里,但这应该可以工作......所以我将使用所提供的少量信息。

Sub test1()

   Dim ws As Worksheet
   Dim FIND_VALUE As String

   FIND_VALUE = "RDD1250 Due SO not Billed"

   For Each ws In ActiveWorkbook.Worksheets
      If Range("C7").Value = FIND_VALUE Then
         Range("B13", Cells(Range("B13").Row, Columns.Count).End(xlToLeft).End(xlDown)).Copy
      End If
   Next

End Sub

提示:尽量避免使用.Select.Activate

Please see here for more helpful tips regarding .Select and .Activate

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2019-05-01
    • 2010-12-22
    相关资源
    最近更新 更多