Vba 查找与条件匹配的所有值,并执行函数将文本转换为列
我不知道如何运行,但我需要允许以下代码运行,只要有一个单元格满足此条件。我试过一些函数,但都不起作用。既然你们比我聪明得多,我希望你们能帮助我。 唯一的要求是搜索条件必须从08开始,函数允许我将文本转换为列 提前交货Vba 查找与条件匹配的所有值,并执行函数将文本转换为列,vba,excel,Vba,Excel,我不知道如何运行,但我需要允许以下代码运行,只要有一个单元格满足此条件。我试过一些函数,但都不起作用。既然你们比我聪明得多,我希望你们能帮助我。 唯一的要求是搜索条件必须从08开始,函数允许我将文本转换为列 提前交货 Sub getDataProperly() ' ' Macro7 Macro ' ' Cells.Find(What:="08*", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlWhole, S
Sub getDataProperly()
'
' Macro7 Macro
'
'
Cells.Find(What:="08*", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Selection.TextToColumns Destination:=ActiveCell, DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(2, 2), Array(10, 2), Array(15, 2), Array(19, 2), Array(27, 2), _
Array(31, 2), Array(39, 2), Array(43, 2), Array(51, 2), Array(55, 2), Array(63, 2), Array( _
67, 2), Array(75, 2), Array(79, 2), Array(87, 2), Array(91, 2), Array(99, 2), Array(103, 2), _
Array(111, 2), Array(115, 2), Array(123, 2), Array(127, 2), Array(135, 2), Array(139, 2), _
Array(147, 2), Array(151, 2), Array(159, 2), Array(163, 2), Array(171, 2), Array(175, 2), _
Array(183, 2), Array(187, 2), Array(195, 2), Array(199, 2), Array(207, 2), Array(211, 2), _
Array(219, 2), Array(223, 2), Array(231, 2), Array(235, 2), Array(243, 2), Array(247, 2), _
Array(255, 2), Array(259, 2), Array(267, 2), Array(271, 2), Array(279, 2), Array(283, 2), _
Array(290, 2), Array(295, 2), Array(302, 2), Array(307, 2), Array(315, 2), Array(319, 2), _
Array(327, 2), Array(331, 2), Array(339, 2), Array(343, 2), Array(351, 2), Array(355, 2), _
Array(363, 2), Array(367, 2), Array(375, 2), Array(379, 2), Array(387, 2), Array(391, 2), _
Array(399, 2), Array(403, 2), Array(411, 2), Array(415, 2), Array(423, 2), Array(427, 2), _
Array(435, 2), Array(439, 2), Array(447, 2), Array(451, 2), Array(459, 2), Array(463, 2), _
Array(471, 2), Array(475, 2), Array(483, 2), Array(487, 2), Array(495, 2), Array(499, 2), _
Array(507, 2), Array(511, 2), Array(519, 2), Array(523, 2), Array(531, 2), Array(535, 2), _
Array(543, 2), Array(547, 2), Array(555, 2), Array(559, 2), Array(567, 2), Array(571, 2), _
Array(579, 2), Array(583, 2), Array(591, 2), Array(595, 2), Array(603, 2), Array(607, 2), _
Array(615, 2), Array(619, 2), Array(627, 2), Array(631, 2), Array(639, 2), Array(643, 2), _
Array(651, 2)), TrailingMinusNumbers:=True
End Sub
我会做如下的事情
Dim mySheet as WorkSheet
Set mySheet = wkb.sheets(mySheet)
Do Until mySheet.Cells(r,c) = ""
If InStr(mySheet.Cells(r,c), "08") = 1 Then
Call getDataProperly
End If
r = r + 1
Loop
这将使用mySheet作为所讨论的工作表的任何内容,并且这可能是动态的,具有针对工作簿中的每个工作表的“工作表”类型的场景。在本例中,它循环遍历行,但可以轻松地处理列,直到找到空单元格为止。如果您需要一个更明确的循环,您可以使用For循环让它运行一定数量的迭代。使您的调用运行的技巧是If InStrmySheet.Cellsr,c,08=1,它所做的是查找08值,并且只有当匹配从您正在查看的单元格的第一个位置开始时,GetDataRightly子工作