есть файл excel в нем текстовое значение "12345" нужно найти место где оно встречается и удалить эту строку, подскажите как это сделать функцией _Excel_RangeFind ?
update!
через модифицрованную функцию нашел как искать значение но теперь как удалить строку в которой используется это значение??
вот это удаляет чисто значение найденное, но а как на счет всей строки где это значение?
update!
через модифицрованную функцию нашел как искать значение но теперь как удалить строку в которой используется это значение??
вот это удаляет чисто значение найденное, но а как на счет всей строки где это значение?
Код:
$SearchResult=__Excel_RangeFind($oWorkbook, '1234567')
_Excel_RangeDelete($oWorkbook.Worksheets(1), $SearchResult[0][1])
Код:
Func __Excel_RangeFind($oWorkbook, $sSearch, $vRange = Default, $iLookIn = Default, $iLookAt = Default, $bMatchcase = Default)
If Not IsObj($oWorkbook) Or ObjName($oWorkbook, 1) <> "_Workbook" Then Return SetError(1, 0, 0)
If StringStripWS($sSearch, 3) = "" Then Return SetError(2, 0, 0)
If $iLookIn = Default Then $iLookIn = $xlValues
If $iLookAt = Default Then $iLookAt = $xlPart
If $bMatchcase = Default Then $bMatchcase = False
Local $oMatch, $sFirst = "", $bSearchWorkbook = False, $oSheet
If $vRange = Default Then
$bSearchWorkbook = True
$oSheet = $oWorkbook.Sheets(1)
$vRange = $oSheet.UsedRange
ElseIf IsString($vRange) Then
$vRange = $oWorkbook.Activesheet.Range($vRange)
If @error Then Return SetError(3, @error, 0)
EndIf
Local $aResult[100][4], $iIndex = 0, $iIndexSheets = 1, $iNumberOfSheets = $oWorkbook.Worksheets.Count
While 1
$oMatch = $vRange.Find($sSearch, Default, $iLookIn, $iLookAt, Default, Default, $bMatchcase)
If @error Then Return SetError(4, @error, 0)
If IsObj($oMatch) Then
$sFirst = $oMatch.Address
While 1
$aResult[$iIndex][0] = $oMatch.Worksheet.Name
$aResult[$iIndex][1] = $oMatch.Address
$aResult[$iIndex][2] = $oMatch.Value
$aResult[$iIndex][3] = $oMatch.Formula
$iIndex = $iIndex + 1
If Mod($iIndex, 100) = 0 Then ReDim $aResult[UBound($aResult, 1) + 100][4]
$oMatch = $vRange.Findnext($oMatch)
If Not IsObj($oMatch) Or $sFirst = $oMatch.Address Then ExitLoop
WEnd
EndIf
If Not $bSearchWorkbook Then ExitLoop
$iIndexSheets = $iIndexSheets + 1
If $iIndexSheets > $iNumberOfSheets Then ExitLoop
$sFirst = ""
$oSheet = $oWorkbook.Sheets($iIndexSheets)
If @error Then ExitLoop
$vRange = $oSheet.UsedRange
WEnd
ReDim $aResult[$iIndex][4]
Return $aResult
EndFunc