Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA匹配/索引函数,用于跳过任何字符串单元格或跳转迭代_Vba_Excel - Fatal编程技术网

VBA匹配/索引函数,用于跳过任何字符串单元格或跳转迭代

VBA匹配/索引函数,用于跳过任何字符串单元格或跳转迭代,vba,excel,Vba,Excel,我有两张纸,我试图将力值从一张拉到另一张。 我在C列中搜索任何以Force-X开头的单元格,然后倒计时并获取所有值 我现在遇到的问题是,当前我拉的单元格中间有随机字符串值。这是由一个名为Femap的程序生成的,我无法控制文本。 这是一个例子,我从中吸取了教训 ELEMENT-ID FORCE-X 38789 1.06E+00 38795 2.49E+00 38801 2.30E+00 38807 2.21E+00 38813 2.15E+00 38819 1.90E+0

我有两张纸,我试图将力值从一张拉到另一张。 我在C列中搜索任何以Force-X开头的单元格,然后倒计时并获取所有值

<>我现在遇到的问题是,当前我拉的单元格中间有随机字符串值。这是由一个名为Femap的程序生成的,我无法控制文本。 这是一个例子,我从中吸取了教训

ELEMENT-ID  FORCE-X
38789   1.06E+00
38795   2.49E+00
38801   2.30E+00
38807   2.21E+00
38813   2.15E+00
38819   1.90E+00
38825   1.57E+00
38827   -8.43E-01
38833   3.92E+00
38839   1.51E+01
38845   1.68E+01
38851   1.19E+01
38857   9.22E+00
38863   2.84E+00

**CBUSH-CRITS   JULY
CONSTRAINT  SET
SUBCASE 1

F   O**

ELEMENT-ID  FORCE-X
39721   8.80E+00
39727   6.02E+00
39733   1.44E+00
问题区域以粗体显示。我的单元格最终会有值,如July、Constraint Set等。我如何跳过任何带有字符串的单元格,并确保我的索引搜索只是从Force-X的一次迭代到Force-X的下一次迭代中获取值

Dim mrsheet As Worksheet

Set mrsheet = ThisWorkbook.Sheets("PPO")



'''''''''''''''''''''''''''''''''''''
n = 2
Count = 1
m = 1
numcbush = 138
i = 1


While m <= numcbush


If Sheets("F06").Cells(i, 2) = mrsheet.Cells(n, 1) Then

     mrsheet.Cells(n, 12) = Application.WorksheetFunction.Index(Sheets("F06").Range("C:C"), Application.WorksheetFunction.Match("FORCE-X", Sheets("F06").Range("C:C"), 0) + Count)

      m = m + 1
      n = n + 1
      Count = Count + 1
      i = i + 1

Else


i = i + 1

End If



Wend
Dim mrsheet作为工作表
Set mrsheet=此工作簿.Sheets(“PPO”)
'''''''''''''''''''''''''''''''''''''
n=2
计数=1
m=1
numcbush=138
i=1

而m在开始程序之前,是否可以先尝试类似于此宏的操作来清理数据确保备份,这将删除行

Sub CleanupData()
Dim aCell As Range

StartClean:
For Each aCell In Intersect(ActiveSheet.UsedRange, ActiveSheet.Range("C:C")).Cells

If IsNumeric(aCell) Or InStr(1, UCase(aCell.Text), "FORCE-X") > 0 Or IsEmpty(aCell) Then
    'do nothing
Else
    aCell.EntireRow.Delete
    GoTo StartClean
End If

Next

End Sub

在开始程序之前,可以先尝试类似此宏的操作来清理数据吗确保备份,这将删除行

Sub CleanupData()
Dim aCell As Range

StartClean:
For Each aCell In Intersect(ActiveSheet.UsedRange, ActiveSheet.Range("C:C")).Cells

If IsNumeric(aCell) Or InStr(1, UCase(aCell.Text), "FORCE-X") > 0 Or IsEmpty(aCell) Then
    'do nothing
Else
    aCell.EntireRow.Delete
    GoTo StartClean
End If

Next

End Sub

如果这对你有效,请接受答案。很抱歉,如果您知道这一点,您将有一个新的用户外观。:)如果这对你有效,请接受答案。很抱歉,如果您知道这一点,您将有一个新的用户外观。:)