2015-06-05 3 views
0

Привет У меня есть формула COUNTIF: RawData_Chq!G2:G5000,"*ICS*" . Используя VBA, я хотел бы иметь возможность извлечь имя листа: RawData_Chq в 1 строке и критерии ICS в другом. Как я должен это делать?Извлечь название листа и критерии из функции COUNTIF в excel

Dim formula_extract As String 
Dim CI_Name As String 
Dim ButtonName As String 
Dim CI_Extract As String 
Dim Sheet_Extract As String 
Dim Split_Formula() As String 
ButtonName = Application.Caller 
Set b = ActiveSheet.Buttons(ButtonName) 
    r = b.TopLeftCell.Row 
    CI_Name = Cells(r, 2).Value 
formula_extract = Cells(r, 3).Formula 
Split_Formula = Split(formula_extract, ",") 

Sheet_Extract = Left(Split_Formula(0), InStr("!", Split_Formula(0))) 
CI_Extract = Split_Formula(1) 
+3

Здравствуйте, Добро пожаловать в StackOverflow! Пожалуйста, покажите нам код того, что вы пробовали, чтобы мы могли вам помочь. –

+1

разделите формулу на массив и проанализируйте элементы или просто используйте функции «Left» и «Right» для синтаксического анализа строки формулы из запятой, которая разделяет формулы на два аргумента. –

ответ

0

Это должно сделать это, я думаю, это просто вопрос разделения формулы в ее отдельных элементов, а затем разбор тех, чтобы удалить ненужные данные:

CI_Name = Cells(r, 2).Value 
formula_extract = [A1].Formula 
Split_Formula = Split(formula_extract, ",") 

Dim functionString As String 
'Use this later to get rid of these characters with the sheet_extract 
functionString = "=COUNTIF(" 

'The worksheet name: 
Sheet_Extract = Left(Split_Formula(0), InStr(Split_Formula(0), "!") - 1) 
Sheet_Extract = Replace(Sheet_Extract, functionString, vbNullString) 

'The criteria: 
CI_Extract = Split_Formula(1) 
+0

Когда я запускаю код, я получаю пустое значение в Sheet_Extract, а мой CI_Extract - «* ICS *». Я только требую ICS, а не * или «Как это сделать?» Я обновил код, чтобы вы могли видеть, что я запускаю. – Tan12

+0

Также Split_Formula (0) равно »= COUNTIF (RawData_Chq! G2: G5000" – Tan12

+0

Используйте функцию «Заменить», чтобы избавиться от символов, которые вам не нужны, например, звездочки и кавычки. –

Смежные вопросы