Excel VB для замены 0 и 1 строкой - однако строка содержит 1 и 0, необходимо, чтобы оператор if проверял, если length = 1, а затем замените else skip - PullRequest
0 голосов
/ 04 августа 2020

Электронная таблица содержит примерно 400 (A-QE) столбцов и 10 тыс. Строк, поэтому я не просто использую поиск и замену. Каждый столбец представляет отдельный диагноз. В отчете под заголовком столбца, который является описанием диагностики, отображается цифра 1 или 0. Компания хочет, чтобы я заменил 1 и 0 текстом диагностики, которому предшествует открытый (0) или закрытый (1). Проблема заключается в том, что когда я заменяю ноль на «OPEN C109Malignant neoplasm oropharynx, unspecified» или аналогичный текст, когда выполняется замена 1, он видит 1 в строке и заменяет 1 на «OPEN CCLOSED09Злокачественное новообразование ротоглотки, неуточненное» .

Мне нужна функция REPLACE, чтобы ЗАМЕНИТЬ только «1» или «0», если они являются единственными значениями в поле.

Вот пример кода.

Dim ary As Variant
ary = Array(0, 1)
   For i = LBound(ary) To UBound(ary)
   Select Case i
   Case 0
   
Sheet1.Range("F2:F1000").Replace ary(i), "OPEN B181Chronic viral hepatitis B without delta-agent OPEN"
Sheet1.Range("G2:G1000").Replace ary(i), "OPEN B182Chronic viral hepatitis C"
Sheet1.Range("H2:H1000").Replace ary(i), "OPEN C029Malignant neoplasm of tongue, unspecified"
Sheet1.Range("I2:I1000").Replace ary(i), "OPEN C109Malignant neoplasm of oropharynx, unspecified"
Sheet1.Range("J2:J1000").Replace ary(i), "OPEN C139Malignant neoplasm of hypopharynx, unspecified"
Sheet1.Range("K2:K1000").Replace ary(i), "OPEN C159Malignant neoplasm of esophagus, unspecified"
Sheet1.Range("L2:L1000").Replace ary(i), "OPEN C161Malignant neoplasm of fundus of stomach"
Sheet1.Range("M2:M1000").Replace ary(i), "OPEN C182Malignant neoplasm of ascending colon"
Sheet1.Range("N2:N1000").Replace ary(i), "OPEN C189Malignant neoplasm of colon, unspecified"
Sheet1.Range("O2:O1000").Replace ary(i), "OPEN C19Malignant neoplasm of rectosigmoid junction"
Sheet1.Range("P2:P1000").Replace ary(i), "OPEN C20Malignant neoplasm of rectum"
Sheet1.Range("Q2:Q1000").Replace ary(i), "OPEN C220Liver cell carcinoma"
Sheet1.Range("R2:R1000").Replace ary(i), "OPEN C23Malignant neoplasm of gallbladder"
Case 1
Sheet1.Range("F2:F1000").Replace ary(i), "CLOSED B181Chronic viral hepatitis B without delta-agent"
Sheet1.Range("G2:G1000").Replace ary(i), "CLOSED B182Chronic viral hepatitis C"
Sheet1.Range("H2:H1000").Replace ary(i), "CLOSED C029Malignant neoplasm of tongue, unspecified"
Sheet1.Range("I2:I1000").Replace ary(i), "CLOSED C109Malignant neoplasm of oropharynx, unspecified"
Sheet1.Range("J2:J1000").Replace ary(i), "CLOSED C139Malignant neoplasm of hypopharynx, unspecified"
Sheet1.Range("K2:K1000").Replace ary(i), "CLOSED C159Malignant neoplasm of esophagus, unspecified"
Sheet1.Range("L2:L1000").Replace ary(i), "CLOSED C161Malignant neoplasm of fundus of stomach"
Sheet1.Range("M2:M1000").Replace ary(i), "CLOSED C182Malignant neoplasm of ascending colon"
Sheet1.Range("N2:N1000").Replace ary(i), "CLOSED C189Malignant neoplasm of colon, unspecified"
Sheet1.Range("O2:O1000").Replace ary(i), "CLOSED C19Malignant neoplasm of rectosigmoid junction"
Sheet1.Range("P2:P1000").Replace ary(i), "CLOSED C20Malignant neoplasm of rectum"
Sheet1.Range("Q2:Q1000").Replace ary(i), "CLOSED C220Liver cell carcinoma"
Sheet1.Range("R2:R1000").Replace ary(i), "CLOSED C23Malignant neoplasm of gallbladder"
End Select
Next
End Sub```

1 Ответ

0 голосов
/ 04 августа 2020

Range.Replace имеет параметр LookAt.

Добавьте

, xlWhole

к каждому из ваших вызовов Replace.

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