Как использовать функции листа Excel в VBScript? - PullRequest
1 голос
/ 19 октября 2019

Мне нужно посчитать количество активных ячеек в столбце A в Excel.
Я могу легко добиться этого, используя «worksheetfunction.countA» в Excel VBA, но не могу получить то же самое в VBScript.

Я пробовал следующий код:

Dim objXl , objWorkbook, objSheet ,numofactivecells

Set objXl = createobject("Excel.Application")

set objWorkbook= objXl.Workbooks.open("C:\Users\Username\Desktop\filename.xlsm")
'change filename

set objSheet = objWorkbook.Worksheets(1)

objXl.visible = true

objsheet.cells(1,1).select

numofactivecells = objsheet.WorksheetFunction.CountA(Range("A:A"))

msgbox numofactivecells

Мне нужно количество ячеек, содержащих данные в столбце A, хранящиеся в переменной.

Я получаю следующие сообщения об ошибкахкогда я выполняю код:

Ошибка компиляции Microsoft VBScript: Ожидаемый идентификатор

Ошибка компиляции Microsoft VBScript: Ожидается ')'

1 Ответ

1 голос
/ 19 октября 2019

Несколько ошибок:

  1. WorksheetFunction - это метод объекта Excel.Application, а не Worksheet.
  2. Range не может использоваться сам по себеэто метод объекта Worksheet.

Вот код, который будет работать:

Dim objXl
Dim objWorkbook
Dim objSheet
Dim iActiveCells

Set objXl = CreateObject("Excel.Application")
Set objWorkbook = objXl.Workbooks.open("C:\Temp\test2.xlsx") 'change filename
Set objSheet = objWorkbook.Worksheets(1)

objXl.Visible = True

With objSheet
    .Cells(1, 1).Select
    iActiveCells = objXl.WorksheetFunction.CountA(.Range("A:A"))
End With

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