добрый день Помогите пожалуйста: есть список (массив) значений, являющихся формулой. Среди них может попасться ошибка. Как мне найти эту ошибку, и определить ее адрес, чтоб установить курсор на нее? Достаточно найти первую, дальше искать нет необходимости.
добрый день Помогите пожалуйста: есть список (массив) значений, являющихся формулой. Среди них может попасться ошибка. Как мне найти эту ошибку, и определить ее адрес, чтоб установить курсор на нее? Достаточно найти первую, дальше искать нет необходимости.Андрей
Помогите пожалуйста: есть список (массив) значений, являющихся формулой.
1) Где есть? У нас нет; 2) так "значений" или "являющихся формулой"? Это принципиально разные вещи. В общем читайте правила форума и выкладывайте файл. Если нужна помощь...
Помогите пожалуйста: есть список (массив) значений, являющихся формулой.
1) Где есть? У нас нет; 2) так "значений" или "являющихся формулой"? Это принципиально разные вещи. В общем читайте правила форума и выкладывайте файл. Если нужна помощь...KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Извините, что не приложил список, но пока нет возможности зарегистрироваться. Столбец 1 -число, столбец 2 - число. В столбце 3 макросом прописывается формула - сумма двух ячеек соответствующей строки и протягивается на все ячейки. Задача - выявить в столбце 3 ошибку, как вариант - #ЗНАЧ! если в столбцах 1 или 2 не число. И указать адрес этой ячейки. Я делал так: [vba]
Код
Dim amass As Range Dim radress As String Set amass = Range("C2:C" & string_qty).Find("#ЗНАЧ!", , xlValues) If amass Is Nothing Then MsgBox "проверка1 прошла успешно" Else radress = amass.Address a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly) Range(radress).Select Exit Sub End If End sub
[/vba] string_qty - это количество строк в массиве, вычисляется ранее. но так он не видит ошибку, потому что это не значение ячейки. Пробовал перевести все формулы в значения перед поиском - тоже не увидел.
пробовал еще вот так: [vba]
Код
For Each cell In amass If IsNumeric(cell.Value) = False Then radress = amass.Address a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly) Range(radress).Select Exit Sub End If Next MsgBox "проверка1 прошла успешно"
End Sub
[/vba] в результате - ошибки видит, но выделяет всегда весь массив, а не конкретную ячейку.
Извините, что не приложил список, но пока нет возможности зарегистрироваться. Столбец 1 -число, столбец 2 - число. В столбце 3 макросом прописывается формула - сумма двух ячеек соответствующей строки и протягивается на все ячейки. Задача - выявить в столбце 3 ошибку, как вариант - #ЗНАЧ! если в столбцах 1 или 2 не число. И указать адрес этой ячейки. Я делал так: [vba]
Код
Dim amass As Range Dim radress As String Set amass = Range("C2:C" & string_qty).Find("#ЗНАЧ!", , xlValues) If amass Is Nothing Then MsgBox "проверка1 прошла успешно" Else radress = amass.Address a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly) Range(radress).Select Exit Sub End If End sub
[/vba] string_qty - это количество строк в массиве, вычисляется ранее. но так он не видит ошибку, потому что это не значение ячейки. Пробовал перевести все формулы в значения перед поиском - тоже не увидел.
пробовал еще вот так: [vba]
Код
For Each cell In amass If IsNumeric(cell.Value) = False Then radress = amass.Address a = MsgBox("Ячейка " & radress & " содержит ошибку!", vbOKOnly) Range(radress).Select Exit Sub End If Next MsgBox "проверка1 прошла успешно"
End Sub
[/vba] в результате - ошибки видит, но выделяет всегда весь массив, а не конкретную ячейку.Андрей
Public Sub www() Dim amass As Range On Error Resume Next Set amass = Intersect(ActiveSheet.UsedRange, ActiveSheet.Columns(3)).SpecialCells(xlCellTypeFormulas, 16) If amass Is Nothing Then MsgBox "проверка1 прошла успешно" Else MsgBox "Ячейка " & amass(1).Address & " содержит ошибку!", vbOKOnly amass(1).Select Exit Sub End If End Sub
[/vba]
Андрей, оформляйте код тегами. [vba]
Код
Public Sub www() Dim amass As Range On Error Resume Next Set amass = Intersect(ActiveSheet.UsedRange, ActiveSheet.Columns(3)).SpecialCells(xlCellTypeFormulas, 16) If amass Is Nothing Then MsgBox "проверка1 прошла успешно" Else MsgBox "Ячейка " & amass(1).Address & " содержит ошибку!", vbOKOnly amass(1).Select Exit Sub End If End Sub