2010-02-08 2 views
-1

Мне нужно написать макрос excel, чтобы в диапазоне (a: a), если какое-либо значение закрыто, тогда вся строка должна быть скрыта. Как это сделать ...Excel Macros

+0

попробовать форум Excel –

+0

вы можете уточнить свой вопрос немного? - вы имеете в виду ячейки, имеющей слово " Закрыто? – monojohnny

+0

попробуйте с помощью 'Sub test() Dim a As Range Установите a = Range (« A: A »). Найдите (« Закрыто », LookIn: = xlValues, MatchCase: = Exact, lookat: = xlWhole) Если не Nothing Nothing Range («A: A»). EntireColumn.Hidden = True End Sub' –

ответ

1

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

Когда я хочу что-то сделать в запрограммированном макросе excel, и я не знаю кода, я создаю макрос записи, а затем анализирую код. В вашем случае я бы записал макрос, в котором я закрываю ячейку (и отключаю ее, чтобы проверить, что произойдет в обоих случаях), тогда я бы выбрал строку и спрячу ее. Это может быть строка, в которой ячейка закрыта. Остановите макрос и проверьте код. Он будет в последовательном порядке, поэтому обычно довольно легко определить строку кода, в которой вы нуждаетесь.

код псевдо-Excel должен выглядеть следующим образом

 
For row = 1 to MaxRow 
    For col = 1 to MaxCol 
     If Cells(row,col).IsClosed Then 'Replace with the code that the macro use to check if closed 
      Rows(row).Hide 'Replace with the code that the macro uses to hide the row 
     End If 
    Next col 
Next row 

Надежд, которые помогают.

Редактировать: Если это имеет какое-то отношение к строковому значению (например, когда оно написано близко), то вы определяете диапазон и проверяете его значение (Ex: Range («A1»). Значение должно давать значение ячейка А1

0

Это не только не означает, быть проще для вас, чтобы понять

Sub hideClosed() 
For Each cell In Range("A:A") 
If cell = "Closed" Then Rows(cell.Row()).EntireRow.Hidden = True 
Next 
End Sub