2015-04-13 3 views
0

Представим себе, что в строках таблицы ListObject есть несколько строк или некоторые шаблоны, которые я бы хотел найти, и если они были найдены, я хотел бы отформатировать всю строку. Мой пример может быть свалка из записей через VBA и ACE OLEDB в ListObject таблицу первенствовать, и я хотел бы, чтобы отформатировать его:Как найти (и отредактировать) конкретную строку с таблицей Excel ListObject (прежний список)

col1 | col2  | col3   | col4 
-----+-----------+---------------+---------- 
1. | empty  | AAA   | 
2. | empty  | AAA001value | value 
3. | empty  | AAA002value | value 
4. | Total | desc   | value 
5. | empty  | BBB   | 
6. | empty  | BBB001value | value 
7. | empty  | BBB002value | value 
8. | Total | desc   | value 

Например, я хотел бы

  1. Жирный весь ряд в таблице, где отображается слово Total.
  2. Вставьте строку, вверху, где отображается символ «3», обозначающий группу, обозначающую группу.

я бы, вероятно, удастся придумать код работает на стандартной не ListObject таблицы и добавить строки для всего листа, но я понятия не имею, как поиск и изменить строки в таблице ListObject.

+0

Я редактирую ваши данные образца, пожалуйста, убедитесь, что я редактирую ваши данные в правильных столбцах;). –

ответ

1

В VBA код, который вы можете найти ваши шаблоны строк с помощью like сравнения оператора или с помощью Instr() функции, как показано ниже образцов:

If (strCell like "*Total*") Then 
    ' True for case-sensitive strCell string like "Total", "aTotalb" and not for "total" 
End If 

If (strCell like "*[A-Z][A-Z][A-Z]00[1-2]*") Then 
    ' True for strCell strings with 3 Upper-Case letters And "00" after that and also "1" or "2" after that like "AAA001" or "ZBC002" 
    If (InStr(1, strCell, "AAA") > 0) Then 
     ' With this InStr() you can remove 'ZBC002' 
    End If 
    ... 
End If 

If (strCell like "*[*][*][A-Z][A-Z][A-Z][*][*]*" 
    ' True for strCell like "a**AAA**b" or "asd**ZCB**" 
    If (InStr(1, strCell, "AAA") > 0) Then 
     ' With this InStr() you can remove "asd**ZCB**" 
    End If 
End If 

И для подсветки можно использовать такой код:

Sheets(1).Rows(1).Font.Bold = True