|
|
|
Split
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем, подскажите пожалуйста, как мне описать такую функция, у меня в столбце, в первой ячейки, есть знак «=», во второй строке нет знака «=», я хочу написать такую функцию : если есть знак «=», то запускается макрос , если нет , то идем строчкой ниже : примерно получилось следующее For i = 1 To UBound(x) If I nStr(temp(i), t) > 0 Then (вот здесь и есть загвоздка как описать если есть знак равно то выполняется функция.) …. Next End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2011, 09:09 |
|
||
|
Split
|
|||
|---|---|---|---|
|
#18+
Попытался, вот так сравнить через IsNumeric но все равно не получается , подскажите что не так? Sub test() Dim x Dim i As Long Application.ScreenUpdating = False x = Range([A2], Cells(Rows.Count, 8).End(xlUp).Offset(0, 1)) Range([c2], Cells(Rows.Count, "i").End(xlUp).Offset(0, 1)).ClearContents ReDim y(1 To UBound(x), 1 To 7) On Error Resume Next For i = 1 To UBound(x) If Not IsNumeric(Split(x(i, 3), "=")) <> "" Then y(i, 1) = Trim(Split(x(i, 3), "l=")(0)) y(i, 2) = (Trim(Split(x(i, 3), "l=")(1)) / 1000) * x(i, 4) y(i, 3) = x(i, 5) y(i, 4) = x(i, 6) / (Trim(Split(x(i, 3), "l=")(1)) / 1000) y(i, 5) = x(i, 7) y(i, 6) = x(i, 8) y(i, 7) = x(i, 9) Else y(i, 1) = x(i, 3) y(i, 2) = x(i, 4) y(i, 3) = x(i, 5) y(i, 4) = x(i, 6) y(i, 5) = x(i, 7) y(i, 6) = x(i, 8) y(i, 7) = x(i, 9) End If Next [c2].Resize(i - 1, 7) = y ' [a:P].EntireColumn.AutoFit On Error GoTo 0 Application.ScreenUpdating = True End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2011, 12:01 |
|
||
|
Split
|
|||
|---|---|---|---|
|
#18+
0creator0, Split(x(i, 3), "=") это массив строк, там не может быть IsNumeric. А если анализировать Ubound, то оно всегда IsNumeric. Если хотите узнать, есть ли "=" то смотрите по Instr() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2011, 12:35 |
|
||
|
Split
|
|||
|---|---|---|---|
|
#18+
0creator0если есть знак «=», то запускается макрос , если нет , то идем строчкой нижеа с каких пор запрещено юзать ф-цию left() или instr()/ yfabuf сплиповать массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2011, 12:48 |
|
||
|
Split
|
|||
|---|---|---|---|
|
#18+
PlanB, это можно сказать продолжение темы. Это мой макрос - я просто сплитил и раскидывал по ячейкам. Теперь ТС судя по всему хочет сделать ветвление - нужно сплитить или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2011, 12:53 |
|
||
|
Split
|
|||
|---|---|---|---|
|
#18+
Да, и если проверять на наличие =, то On Error Resume Next уже не нужен - ошибок ведь не будет с (Split(x(i, 3), "l=")(1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2011, 12:55 |
|
||
|
Split
|
|||
|---|---|---|---|
|
#18+
Hugo121 ну просто огромнейшее спасибо очень сильно мне сегодня помогли , уже сбился со счету сколько раз , очень признателен и благодарен. Не хотел на том форуме вам задавит вопрос, так как не хотел показаться назойливым)) Sub test() Dim x Dim i As Long Application.ScreenUpdating = False x = Range([A2], Cells(Rows.Count, 9).End(xlUp)) Range([c2], Cells(Rows.Count, "i").End(xlUp).Offset(0, 1)).ClearContents ReDim y(1 To UBound(x), 1 To 7) For i = 1 To UBound(x) ' If InStr(Split(x(i, 3), ""), "l=") "" Then If InStr(x(i, 3), "l=") > 0 Then y(i, 1) = Trim(Split(x(i, 3), "l=")(0)) y(i, 2) = (Trim(Split(x(i, 3), "l=")(1)) / 1000) * x(i, 4) y(i, 3) = x(i, 5) y(i, 4) = x(i, 6) / (Trim(Split(x(i, 3), "l=")(1)) / 1000) y(i, 5) = x(i, 7) y(i, 6) = x(i, 8) y(i, 7) = x(i, 9) Else y(i, 1) = x(i, 3) y(i, 2) = x(i, 4) y(i, 3) = x(i, 5) y(i, 4) = x(i, 6) y(i, 5) = x(i, 7) y(i, 6) = x(i, 8) y(i, 7) = x(i, 9) End If Next [c2].Resize(i - 1, 7) = y [a:P].EntireColumn.AutoFit Application.ScreenUpdating = True End Sub Теперь все работает, ещё раз вам спасибо!))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2011, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=121&tid=2176498]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 384ms |

| 0 / 0 |
