Страницы: 1
RSS
Как прописать в коде конкретные ключевые слова
 
Доброй ночи.

Имеется макрос, извлекающий текст из разных мест одной ячейки и добавляющий этот текст - в конкретные места другой ячейки.
В целом он работает, однако ключевые слова вставки текста ("текст1-," и "текст2-,") не прописаны точно.

Вместо этих ключевых слов стоит команда :
Код
N = InStr(S, "текст" & (K + 1) & "-")

Я пытался заменить последнюю часть кода вот так:
Код
  S1 = Cells(J + 2, "AA")
  S2 = Cells(J + 2, "AA")
  
  N1 = InStr(S, "текст1-")
  N2 = InStr(S, "текст2-")
  
  If Mid(S, N1 + 6, 1) <> "," Then 
    L1 = InStr(N1 + 7, S1, ","): S = Left(S1, N1 + 6) & Mid(S1, L1)
  End If
  If Mid(S, N2 + 6, 1) <> "," Then 
    L2 = InStr(N2 + 7, S2, ","): S2 = Left(S2, N2 + 6) & Mid(S2, L2)
  End If
  Sn = Left(wd(K), Len(wd(K)) - 1) & Sum
  Cells(J + 2, "AA") = Left(S1, N1 + 6) & Sn & So & Mid(S1, N1 + 7)
  Next
End Sub
Но что-то не очень хорошо работает.
Вставляет текст не туда куда нужно.

Как прописать в коде - конкретные слова "текст1-" и "текст2-" ?
 
Вы всерьез полагаете, что чем запутаннее пример, тем быстрее ответ?
 
Почему "wd" и "sd" это отдельные переменные ?
Почему вы не используете "Split" ?
Напишите точно в чем дело.
 
Привет!
Пробовали заменить
Код
N = InStr(S, "текст" & (K + 1) & "-")
на
Код
N = InStr(S, "текст1-")
?
Сравнение прайсов, таблиц - без настроек
 
Inexsu, конечно пробовал.
Но только там же кроме "текст1-" ... еще надо "текст2-"  куда-то вводить.
Как это второе слово ввести ?
Код
N2 = InStr(S, "текст2-")
Не получается
 
Там в тексте есть сразу и "текст1-" , и "текст2-" - что делать в таком случае? И чем не нравится то, что работает сейчас?
 
Hugo, ну я не могу из-за этого поменять слова в тексте.
Например мне надо вместо слова "текст2-"   написать какое-то другое слово.
 
Привет!
добавил перед
Код
N = InStr(S, "текст" & (K + 1) & "-")
строку
Код
Debug.Print "текст" & (K + 1) & "-"
получил в Immediate
текст1-
текст2-

что не так?
Сравнение прайсов, таблиц - без настроек
 
Inexsu, конечно не так.
Я хочу сменить эти кодовые слова - на какие-нибудь другие.
Но не могу, потому что они не прописаны целиком, а представлены в виде сборки из нескольких частей - слова "текст", плюс числитель, плюс символ "-".


Как мне установить например - вместо них - кодовые слова: "предложение8-" и "фраза2-" ?
 
Давайте коду массив своих слов - перебирайте в цикле этот массив, а не К.
Ну или если это К ещё где-то используется - используйте её как индекс этого массива слов.
Изменено: Hugo - 05.01.2019 12:58:36
 
Hugo, ясно.
А как это сделать ?
 
Можно вместо
Код
"текст" & (K + 1) & "-"

писать
Код
массив(K)

ну а где-то выше создать
Код
массив=array("слово раз","слово два")

и меняйте его как угодно, а если добавите третье слово - тогда цикл нужно изменить до ubound(массив)
Изменено: Hugo - 05.01.2019 13:02:17
 
Hugo, так... все встало на свои места.
Большое спасибо за ответ.
 
Кто нибудь расскажит что именно надо?
 
Кстати, в коде уже так используются два массива.
И если в именах переменных используете символ К (а также А, О, Е, Р, Т, Х, М, Н, С) - то жизненно необходимо использовать Option Explicit!
Страницы: 1
Наверх