2013-04-04 2 views
-2

Я новичок в vbs и должен знать, как искать столбцы для определенных критериев, а затем копировать любые строки, соответствующие этим критериям, в новую таблицу. У меня есть несколько категорий данных, которые я извлекаю из одной таблицы, но для этого требуется много «фильтра» в этом столбце, фильтр в этом столбце, глазное яблоко для этого критерия в другом столбце, если он соответствует, затем скопируйте и вставьте строку в надлежащей категории ". Я в основном хочу взять все это ручное усилие и автоматизировать его.Вопросы VBS от Noob

Мой второй вопрос заключается в поиске в определенных столбцах. У меня есть даты. Мне нужно найти строки, которые соответствуют критериям «21 день или ближе к текущей дате». Как я могу указать сценарий для просмотра дат и скопировать и вставить все строки, которые не являются более чем за 21 день с текущей даты?

Заранее благодарен!

+2

Можете ли вы показать нам свой VBS код, который вы пытались и не работает ? – istepaniuk

+1

@istepaniuk - подталкивание студента, которому нужен план/концепция для производства кода, бесполезно и противно. –

ответ

0

Вы заинтересованы в создании настраиваемого макроса с помощью VBS? Добавление файла VB в разделе Development/Visual Basic, вы можете обрабатывать строки и столбцы.

Sub CountX(pRowStart As Integer, pRowStop As Integer, pColStart As Integer, pColStop As Integer, pObjGrp As String) 
      Dim x As Integer 
      Dim xRow As Integer 
      Dim xCol As Integer 
      Dim wSht As Worksheet 

      x = 0 
      '**** create object reference to worksheet object. 
      Set wSht = Worksheets("Sheet1") 

      '**** set cell control values 
      xRow = 1 
      xCol = 3   
      Do While xRow < pRowStop + 1 
       Do While xCol < pColStop + 1 
        If UCase(ActiveSheet.Cells(xRow, xCol)) = "X" Then 
         x = x + 1 
        End If 
        xCol = xCol + 1 
       Loop 
       xCol = pColStart 
       xRow = xRow + 1 
      Loop 
    End Sub 

Вы также можете добавить это в ваш код, чтобы активировать другой лист и установите значение грести 1 колонка 3

Sheets(psSheetName).Activate 
ActiveSheet.Cells(1, 3).Value = "value" 
+0

Большое спасибо Грегу. Извините, так долго, чтобы вернуться к этому в ответ на ответы каждого. Это очень помогло. – jbauman8296

1

Есть два способа автоматизировать обработку данных электронной таблицы (Excel?): Оба начинаются с задания ваших задач на простом/естественном языке (например, «копировать все строки с?» - дату 21 день больше/больше равно/меньше/меньше, чем равен текущая дата из листа ?? (строка/столбец?) к листу ?? (строка/столбец?)», а затем

  1. использовать записи макросов, чтобы получить код VBA, чтобы решить эту задачу и 'port' его в VBScript
  2. перевести описания задач в операторы SQL и выполнить их при подключении ADO к электронной таблице

Лучше ли ваш первый или второй способ зависит от ваших знаний и навыков.

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