VBA匹配/索引函数,用于跳过任何字符串单元格或跳转迭代
我有两张纸,我试图将力值从一张拉到另一张。 我在C列中搜索任何以Force-X开头的单元格,然后倒计时并获取所有值 <>我现在遇到的问题是,当前我拉的单元格中间有随机字符串值。这是由一个名为Femap的程序生成的,我无法控制文本。 这是一个例子,我从中吸取了教训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
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
如果这对你有效,请接受答案。很抱歉,如果您知道这一点,您将有一个新的用户外观。:)如果这对你有效,请接受答案。很抱歉,如果您知道这一点,您将有一个新的用户外观。:)