Вставьте формулу в ячейку определенного столбца X, в той же строке, где ячейка содержит «определенный текст» - PullRequest
0 голосов
/ 15 октября 2019

Абсолютно зеленый здесь. Я пытаюсь написать макрос, который сначала очищает некоторые ненужные данные и интервалы в листе, а затем выполняет эту задачу:

В пределах A: A, если текст ячейки содержит «определенный текст», вставьте данныеформула в столбце B / D / F в той же строке, что и ячейка, содержащая «конкретный текст».

Я пытаюсь автоматизировать преобразование значений из одной единицы в другую. Тип единицы связан со значением чего-либо в ячейке A: A, и формула должна воздействовать на значение в B: B (область), D: D (длина) или F: F (количество)в зависимости от того, в какой единице находится ячейка A: A.

Расположение столбцов данных всегда будет одинаковым, но порядок строк изменяется от документа к документу.

Какполучить формулы преобразования для применения к нужному значению ячейки? Как заставить макрос работать, даже если текст добавлен в ячейку в A: A?

Я использовал Macro Recorder, чтобы написать форматирование и подготовить формулы, которые я буду использовать в Resultстроки.

Шаг очистки

Sub Takeoff()
'
' Takeoff Macro
'

'
Rows("4:4").Select
    Selection.Delete Shift:=xlUp
    Columns("H:O").Select
    Selection.ClearContents
    Columns("B:G").Select
    Selection.EntireColumn.AutoFit
    Columns("A:I").Select
    Selection.NumberFormat = "#,##0.00"

End Sub

Шаг преобразования

Я думаю, что я использовал бы что-то вроде следующего, повторяяЕсли / Тогда для каждого случая преобразования. Ячейка в A: A всегда будет содержать что-то, на что можно воздействовать, но после этого текста может быть дополнительный текст - является ли If / Тогда лучшим способом сделать это?

Dim Entry As String, result As String
Entry = Range("A:A").Value

If Entry = "Slope Mat" Then 

Range("H:H").Value = result

Формулы для преобразования

Я думаю, что RC [-x] будет сохранять результат в той же строке, как и нужно.

"=RC[-4]*2"
"=RC[-6]*0.00184"
"=ROUNDUP(1.14*CONVERT(RC[-6],""ft^2"",""yd^2""),-2)"
"=CONVERT(RC[-6],""ft^2"",""us_acre"")"

При запуске этот макрос должен

  1. Очистить электронную таблицу
  2. Поиск строк и, если найдено, вставить формулу в нужную строку

Большое спасибо за ваше терпение и помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...