Vba excel определить количество столбцов

Here’s a completely over the top answer — will give you the details of all separate regions in your workbook (a region being separated by a blank row and column).

You didn’t state if there’d be more than one table on a sheet — so this gives it all.

Sub Test()

    Dim aLists  As Variant
    Dim x As Long
    Dim rng As Range

    '//Find lists in the this workbook.
    aLists = FindRegionsInWorkbook(ThisWorkbook)

    For x = LBound(aLists) To UBound(aLists)
        Set rng = Range(aLists(x))
        Debug.Print rng.Parent.Name & "!" & rng.Address & _
            " | FirstCol: " & rng.Column & _
            " | LastCol: " & rng.Column + rng.Columns.Count - 1 & _
            " | TopRow: " & rng.Row & _
            " | BottomRow: " & rng.Row + rng.Rows.Count - 1 & _
            " | TotalRows: " & rng.Rows.Count & _
            " | TotalColumns: " & rng.Columns.Count
    Next x

    Debug.Assert False
End Sub

'---------------------------------------------------------------------------------------
' Procedure : FindRegionsInWorkbook
' Author    : Zack Barresse (MVP), Oregon, USA. (http://www.mrexcel.com/forum/showthread.php?t=309052)
' Date      : 20/03/2008
' Purpose   : Returns each region in each worksheet within the workbook in the 'sRegion' variable.
'---------------------------------------------------------------------------------------
Public Function FindRegionsInWorkbook(wrkBk As Workbook) As Variant
    Dim ws As Worksheet, rRegion As Range, sRegion As String, sCheck As String
    Dim sAddys As String, arrAddys() As String, aRegions() As Variant
    Dim iCnt As Long, i As Long, j As Long
    '//Cycle through each worksheet in workbook.
    j = 0
    For Each ws In wrkBk.Worksheets
        sAddys = vbNullString
        sRegion = vbNullString
        On Error Resume Next
        '//Find all ranges of constant & formula valies in worksheet.
        sAddys = ws.Cells.SpecialCells(xlCellTypeConstants, 23).Address(0, 0) & ","
        sAddys = sAddys & ws.Cells.SpecialCells(xlCellTypeFormulas, 23).Address(0, 0)
        If Right(sAddys, 1) = "," Then sAddys = Left(sAddys, Len(sAddys) - 1)
        On Error GoTo 0
        If sAddys = vbNullString Then GoTo SkipWs
        '//Put each seperate range into an array.
        If InStr(1, sAddys, ",") = 0 Then
            ReDim arrAddys(0 To 0)
            arrAddys(0) = "'" & ws.Name & "'!" & sAddys
        Else
            arrAddys = Split(sAddys, ",")
            For i = LBound(arrAddys) To UBound(arrAddys)
                arrAddys(i) = "'" & ws.Name & "'!" & arrAddys(i)
            Next i
        End If
        '//Place region that range sits in into sRegion (if not already in there).
        For i = LBound(arrAddys) To UBound(arrAddys)
            If InStr(1, sRegion, ws.Range(arrAddys(i)).CurrentRegion.Address(0, 0)) = 0 Then
                sRegion = sRegion & ws.Range(arrAddys(i)).CurrentRegion.Address(0, 0) & "," '*** no sheet
                sCheck = Right(arrAddys(i), Len(arrAddys(i)) - InStr(1, arrAddys(i), "!"))
                ReDim Preserve aRegions(0 To j)
                aRegions(j) = Left(arrAddys(i), InStr(1, arrAddys(i), "!") - 1) & "!" & ws.Range(sCheck).CurrentRegion.Address(0, 0)
                j = j + 1
            End If
        Next i
SkipWs:
    Next ws
    On Error GoTo ErrHandle
    FindRegionsInWorkbook = aRegions
    Exit Function
ErrHandle:
    'things you might want done if no lists were found...
End Function

How do I find the number of used columns in an Excel sheet using VBA?

Dim lastRow As Long
lastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
MsgBox lastRow

Using the above VBA I’m able to find the number of rows. But how do I find the number of columns in my given excel file?

Jean-François Corbett's user avatar

asked Aug 1, 2011 at 10:48

niko's user avatar

2

Your example code gets the row number of the last non-blank cell in the current column, and can be rewritten as follows:

Dim lastRow As Long
lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
MsgBox lastRow

It is then easy to see that the equivalent code to get the column number of the last non-blank cell in the current row is:

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastColumn

This may also be of use to you:

With Sheet1.UsedRange
    MsgBox .Rows.Count & " rows and " & .Columns.Count & " columns"
End With

but be aware that if column A and/or row 1 are blank, then this will not yield the same result as the other examples above. For more, read up on the UsedRange property.

answered Aug 1, 2011 at 11:42

Jean-François Corbett's user avatar

2

Jean-François Corbett’s answer is perfect. To be exhaustive I would just like to add that with some restrictons you could also use UsedRange.Columns.Count or UsedRange.Rows.Count.
The problem is that UsedRange is not always updated when deleting rows/columns (at least until you reopen the workbook).

answered Aug 1, 2011 at 11:51

iDevlop's user avatar

iDevlopiDevlop

24.6k11 gold badges89 silver badges147 bronze badges

1

It’s possible you forgot a sheet1 each time somewhere before the columns.count, or it will count the activesheet columns and not the sheet1‘s.

Also, shouldn’t it be xltoleft instead of xltoright? (Ok it is very late here, but I think I know my right from left) I checked it, you must write xltoleft.

lastColumn = Sheet1.Cells(1, sheet1.Columns.Count).End(xlToleft).Column

seaotternerd's user avatar

seaotternerd

6,2782 gold badges45 silver badges58 bronze badges

answered Dec 20, 2013 at 1:58

Patrick Lepelletier's user avatar

Result is shown in the following code as column number (8,9 etc.):

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastColumn

Result is shown in the following code as letter (H,I etc.):

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox Split(Sheet1.Cells(1, lastColumn).Address, "$")(1)

Martijn Pieters's user avatar

answered Oct 10, 2016 at 20:27

kadrleyn's user avatar

kadrleynkadrleyn

3341 silver badge5 bronze badges

  1. Count Columns in VBA
  2. Count Column in Range in VBA
  3. Use the Range().End Method in VBA
  4. Use the Cells.Find() Method in VBA

Count Columns in VBA

This article will discuss two ways to easily count columns with data using VBA in Excel.

Count Columns in VBA

When we have a small data table with a few columns, we can easily count them, but it’s quite tough for a large data table to count all the columns without any error. Besides that, some columns may contain data, whereas some columns may be completely blank.

Thus counting all the columns with data in case of a large data table is quite difficult. Now, let’s create a sheet with some sample data to work with.

creating sheet to count columns in VBA

We can see the three columns in the following data table. To control the number of used columns in a single Excel worksheet, We will use VBA codes.

First, we open the VBA editor by pressing the ALT + F11 key. After that, create a new module from Insert > Module.

creating new macro to count columns in VBA

Then, create a new sub, usedColumns(). Inside our new sub, we will use a with loop to get the used range using the method UsedRange.

After that, we use the count method of columns to output the number of used columns.

Example Code:

# VBA
Sub usedColumns()
With Sheet1.UsedRange
MsgBox "The Used Columns are: "& .Columns.Count
End With
End Sub

Save the macro and run it by pressing F5 or clicking on the run. The Macro dialog box will appear as shown below.

Output:

count columns in VBA using With loop

Count Column in Range in VBA

The following VBA code counts all the columns with data in a given range.

Let’s create a new sub ColumnsInRange(). Inside this sub, we will use the range function to select and count the number of columns in that range.

Example Code:

# VBA
Sub ColumnsInRange()
Dim newRange As Worksheet
Set newRange = Worksheets("Sheet1")
MsgBox "The Used Columns are: " & newRange.Range("A15:D15").Columns.Count
End Sub

Output:

counts all the columns with data in a given range

Use the Range().End Method in VBA

We can use the Range().End method to get the last column used in that range.

Create a new sub, findLastColumn(), and inside that sub, we will use the End method of range to find the last column used towards the right side of the sheet.

# VBA

Sub findLastColumn()
Dim newRange As Integer
newRange = Range("A2").End(xlToRight).Column
MsgBox newRange
End Sub

Output:

count columns in VBA last column being used towards right of the sheet using End method

We get the last column number in a pop-up dialog box, as in the picture shown above.

Use the Cells.Find() Method in VBA

We can also use the Range.Find method to get the last used column from the sheet using the VBA code.

Check the following code. In the LastColumnByFind() sub, we use the Cells.Find() method to find the last used column.

Example Code:

# VBA
Sub LastColumnByFind()
Dim newRange As Long
    newRange = Cells.Find(What:="*", _
                    After:=Range("A1"), _
                    LookAt:=xlPart, _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlPrevious, _
                    MatchCase:=False).Column
    MsgBox "Last Used Column Number by Find Method: " & newRange
End Sub

Output:

count columns in VBA by using Find Method

Содержание

  1. Свойство Range.Columns (Excel)
  2. Синтаксис
  3. Замечания
  4. Пример
  5. Поддержка и обратная связь
  6. VBA Excel. Методы Count, CountA и CountBlank
  7. Метод WorksheetFunction.Count
  8. Определение
  9. Синтаксис
  10. Параметры
  11. Примечания
  12. Метод WorksheetFunction.CountA
  13. Определение
  14. Синтаксис
  15. Параметры
  16. Примечания
  17. Метод WorksheetFunction.CountBlank
  18. Определение
  19. Синтаксис
  20. Параметры
  21. Примечания
  22. Примеры
  23. Как посчитать количество столбцов excel vba

Свойство Range.Columns (Excel)

Возвращает объект Range , представляющий столбцы в указанном диапазоне.

Синтаксис

expression. Столбцы

выражение: переменная, представляющая объект Range.

Замечания

Чтобы вернуть один столбец, используйте свойство Item или аналогично включите индекс в круглые скобки. Например, и Selection.Columns(1) возвращают Selection.Columns.Item(1) первый столбец выделенного фрагмента.

При применении к объекту Range , который является выделенным с несколькими областями, это свойство возвращает столбцы только из первой области диапазона. Например, если объект Range имеет две области — A1:B2 и C3:D4, возвращает Selection.Columns.Count значение 2, а не 4. Чтобы использовать это свойство в диапазоне, который может содержать выбор из нескольких областей, проверьте Areas.Count , содержит ли диапазон несколько областей. Если это так, выполните цикл по каждой области в диапазоне.

Возвращаемый диапазон может находиться за пределами указанного диапазона. Например, Range(«A1:B2»).Columns(5).Select возвращает ячейки E1:E2.

Если буква используется в качестве индекса, она эквивалентна числу. Например, Range(«B1:C10»).Columns(«B»).Select возвращает ячейки C1:C10, а не ячейки B1:B10. В примере «B» эквивалентно 2.

Использование свойства Columns без квалификатора объекта эквивалентно использованию ActiveSheet.Columns . Дополнительные сведения см. в свойстве Worksheet.Columns .

Пример

В этом примере для каждой ячейки в столбце один в диапазоне с именем myRange задается значение 0 (ноль).

В этом примере отображается количество столбцов в выделенном фрагменте на листе Sheet1. Если выбрано несколько областей, в примере выполняется цикл по каждой области.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

VBA Excel. Методы Count, CountA и CountBlank

Подсчет количества ячеек в диапазоне в зависимости от их содержимого методами Count, CountA и CountBlank объекта WorksheetFunction из кода VBA Excel.

Метод WorksheetFunction.Count

Определение

Определение метода Count объекта WorksheetFunction в VBA Excel:

Синтаксис

Синтаксис метода Count объекта WorksheetFunction:

Параметры

Параметры метода Count объекта WorksheetFunction:

Параметр Описание
Arg1-Arg30 От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них.

Примечания

  • Метод WorksheetFunction.Count позволяет получить количество числовых значений в диапазоне ячеек или в массиве.
  • При подсчете учитываются аргументы, которые являются числами, датами или текстовым представлением чисел.
  • Логические значения учитываются при подсчете только в том случае, если они введены непосредственно в список аргументов.

Метод WorksheetFunction.CountA

Определение

Определение метода CountA объекта WorksheetFunction в VBA Excel:

Синтаксис

Синтаксис метода CountA объекта WorksheetFunction:

Параметры

Параметры метода CountA объекта WorksheetFunction:

Параметр Описание
Arg1-Arg30 От 1 до 30 аргументов, которые могут содержать различные типы данных или ссылаться на них.

Примечания

  • Метод WorksheetFunction.CountA позволяет получить количество непустых ячеек в заданном диапазоне.
  • Непустыми являются ячейки, которые содержат любые данные, включая значения ошибок и пустые строки ( «» ).
  • Тесты показывают, что метод WorksheetFunction.CountA в массиве, созданном путем присвоения ему значений диапазона, содержащего пустые ячейки, все равно считает все элементы массива, как содержащие значения.

Метод WorksheetFunction.CountBlank

Определение

Определение метода CountBlank объекта WorksheetFunction в VBA Excel:

Синтаксис

Синтаксис метода CountBlank объекта WorksheetFunction:

Параметры

Параметры метода CountBlank объекта WorksheetFunction:

Параметр Описание
Arg1 Диапазон, в котором необходимо подсчитать количество пустых ячеек.

Примечания

  • Метод WorksheetFunction.CountBlank позволяет получить количество пустых ячеек в заданном диапазоне.
  • Пустыми являются ячейки, которые не содержат никаких данных.
  • Также подсчитываются, как пустые, ячейки с формулами, которые возвращают пустые строки ( «» ).
  • Ячейки с нулевыми значениями в подсчете не участвуют.

Примеры

Таблица для строк кода VBA Excel со ссылками на диапазон «A1:C5» , а также с массивом его значений в качестве аргументов:

Источник

Как посчитать количество столбцов excel vba

Добрый день ! Сразу скажу что я только начинаю изучать VBA и сам понимаю что вопрос детский , но ответа так и не смог найти.

Мне нужно узнать количество записей в колонке (насколько я понимаю это Rows в Columns)

В колонке чего? Какой контрол?

Ответить

Номер ответа: 1
Автор ответа:
Padre

Вопросов: 25
Ответов: 215

Web-сайт: localhost
Профиль | | #1
Добавлено: 19.10.03 04:20

эээ . насколько я понимаю это WorkSheet в Экселе

Ответить

Номер ответа: 2
Автор ответа:
Spin

Вопросов: 4
Ответов: 11

Профиль | | #2 Добавлено: 19.10.03 13:24

Вопрос еще такой

Ни у кого нет кода как из Ворда вызывать Ексель

то есть я знаю что надо делать

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Но потом начинается путанница . Не совсем ясно как связать xlBook с WorkBook и xlSheet с WorkSheet . обычно в примерах все заново создают.

Ответить

Номер ответа: 3
Автор ответа:
Spin

Вопросов: 4
Ответов: 11

Профиль | | #3 Добавлено: 19.10.03 13:28

по поводу количества записей в колонке что-то типа этого. проверяется i количество ячеек. может есть какой-нибудь более изящный способ, но мне он в голову не приходит.

это всё работает только если записи идут без пустых ячеек в середине

Public Sub checkColumn()

Dim i As Integer

Dim n As Integer

For i = 1 To 100

If ActiveSheet.Cells(n, 1) = vbNullString Then

ActiveSheet.Cells(n, 2) = «Всего записей: » & (n — 1)

Ответить

Номер ответа: 4
Автор ответа:
Padre

Вопросов: 25
Ответов: 215

Web-сайт: localhost
Профиль | | #4
Добавлено: 19.10.03 15:15

Private sub ExcelByWord

dim x1 as excel.application

Ответить

Номер ответа: 5
Автор ответа:
Padre

Вопросов: 25
Ответов: 215

Web-сайт: localhost
Профиль | | #5
Добавлено: 19.10.03 15:23

Начинает проясняться понемногу.

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

Может есть красивый способ ? Property или метод специальный.

Ответить

Номер ответа: 6
Автор ответа:
Spin

Вопросов: 4
Ответов: 11

Профиль | | #6 Добавлено: 19.10.03 18:23

Да всё точно также. Берёшь диапазон проверяемых ячеек, ставишь счётчик непустых ячеек и вперёд.

Public Sub checkColumn()

Dim i As Integer

Dim n As Integer

Dim count As Integer

For i = 1 To 100

If ActiveSheet.Cells(n, 1) <> vbNullString Then

count = count + 1

ActiveSheet.Cells(1, 2) = «Всего записей: » & count

Ответить

Номер ответа: 7
Автор ответа:
Padre

Вопросов: 25
Ответов: 215

Web-сайт: localhost
Профиль | | #7
Добавлено: 19.10.03 18:53

Sub LastCell_1() ‘Определение последних строк, столбцов

‘Sheets(«лист1») — имя листа [можно порядковый номерSheets(n)]
‘с которым работаем (если с активным, то можно не указывать)

‘Cells(2, 4)- любая ячейка в заголовке таблицы,
‘где первая цифра — номер строки, а вторая — номер столбца

‘CurrentRegion — текущая область, т.е. интервал ячеек
‘ограниченный пустыми столбцами и пустыми строками

‘проверим, с чем работаем (выделим итервал), потом удалите
Sheets(«лист1»).Cells(2, 4).CurrentRegion.Select

‘адрес интервала ячеек
adr = Sheets(«лист1»).Cells(2, 4).CurrentRegion.Address

‘начальная строка интервала ячеек
RowBegin = Sheets(«лист1»).Cells(2, 4).CurrentRegion.Row

‘количество строк в интервале ячеек
RowsCount = Sheets(«лист1»).Cells(2, 4).CurrentRegion.Rows.Count

‘начальный столбец интервала ячеек
ColumnBegin = Sheets(«лист1»).Cells(2, 4).CurrentRegion.Column

‘количество столбцов в интервала ячеек
ColumnsCount = Sheets(«лист1»).Cells(2, 4).CurrentRegion.Columns.Count

‘массив, в котором хранятся значения ячеек итевала
ArrayValueCells = Sheets(«лист1»).Cells(2, 4).CurrentRegion

‘значение элемента массива
ValueCells = ArrayValueCells(строка, столбец)
‘строка- номер стоки в массиве (не обязательно совпадает с номером
‘строки рабочего листа), столбец — аналогично

‘объектная переменная, в которой содержится абсолютно все
Set Rng = Sheets(«лист1»).Cells(2, 4).CurrentRegion

‘ValueCells и Rng лучше просмотреть в окне локальных переменных
‘ViewLocals Window пошаговом режиме (клавиша F8)
End Sub

Sub LastRow_1() ‘последняя заполненная строка

With Sheets(«лист1»).Cells(2, 4).CurrentRegion
LastRow = .Row + .Rows.Count — 1
End With

Ответить

Номер ответа: 8
Автор ответа:
valentinvb

Вопросов: 0
Ответов: 5

Профиль | | #8 Добавлено: 26.10.03 12:53

Может я не совсем правильно поняла, вот только сегодня сталкивалась с подобной проблемой.

Источник

Adblock
detector

Номер ответа: 9
Автор ответа:
A n t o n i n a

Вопросов: 6
Ответов: 29

Профиль | | #9 Добавлено: 19.11.03 18:40

Как узнать количество используемых столбцов на листе Excel с помощью VBA?

Dim lastRow As Long
lastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
MsgBox lastRow

Используя приведенный выше VBA, я могу найти количество строк. Но как мне узнать количество столбцов в моем файле Excel?

5 ответов

Лучший ответ

Ваш примерный код получает номер строки последней непустой ячейки в текущем столбце и может быть переписан следующим образом:

Dim lastRow As Long
lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
MsgBox lastRow

Тогда легко увидеть, что эквивалентный код для получения номера столбца последней непустой ячейки в текущей строке:

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastColumn

Это также может быть полезно для вас:

With Sheet1.UsedRange
    MsgBox .Rows.Count & " rows and " & .Columns.Count & " columns"
End With

Но имейте в виду, что если столбец A и / или строка 1 пусты, это не даст такого же результата, как в других примерах выше. Чтобы узнать больше, прочтите о свойстве UsedRange.


47

Jean-François Corbett
1 Авг 2011 в 16:36

Ответ Жана-Франсуа Корбетта идеален. Чтобы быть исчерпывающим, я просто хотел бы добавить, что с некоторыми ограничениями вы также можете использовать UsedRange.Columns.Count или UsedRange.Rows.Count.
Проблема в том, что UsedRange не всегда обновляется при удалении строк / столбцов (по крайней мере, пока вы снова не откроете книгу).


8

Patrick Honorez
1 Авг 2011 в 15:51

Возможно, вы забыли sheet1 каждый раз где-то перед columns.count, или он будет считать столбцы activesheet, а не sheet1.

Кроме того, не следует ли использовать xltoleft вместо xltoright? (Хорошо, здесь уже очень поздно, но я думаю, что знаю, что справа налево). Я проверил, вы должны написать xltoleft.

lastColumn = Sheet1.Cells(1, sheet1.Columns.Count).End(xlToleft).Column


2

seaotternerd
20 Дек 2013 в 06:40

Результат показан в следующем коде как номер столбца (8,9 и т. Д.):

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastColumn

Результат показан в следующем коде как буква (H, I и т. Д.):

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox Split(Sheet1.Cells(1, lastColumn).Address, "$")(1)


0

Martijn Pieters
7 Апр 2017 в 12:08

Как определить количество строк и колонок диапазона?

Сообщений: 5
• Страница 1 из 1

wap
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 13.08.2007 (Пн) 14:14

Как определить количество строк и колонок диапазона?

Сообщение wap » 17.08.2007 (Пт) 15:40

Как в VBA определить число строк и число колонок в выделенном диапазоне ячеек?

Заодно, подскажите пожалуйста, как в массив данные из этих ячеек загнать, а то вдруг еще проблемы появятся, придется топик заводить :)


Genyaa
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 17.10.2006 (Вт) 13:46
  • Сайт

Сообщение Genyaa » 17.08.2007 (Пт) 16:37

Всякое решение плодит новые проблемы.


dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя

 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский
  • ICQ

Сообщение dormouse » 17.08.2007 (Пт) 17:19

Dim x As Byte, y As Byte

Dim i As Byte, j As Byte, a As Byte, b As Byte

Dim ar() As Integer

y = Selection.Rows.Count

x = Selection.Columns.Count

ReDim ar(x — 1, y — 1) As Integer

For i = Selection.Row To Selection.Row + y — 1

For j = Selection.Column To Selection.Column + x — 1

ar(a, b) = ActiveSheet.Cells(i, j).Value

a = a + 1

Next j

a = 0

b = b + 1

Next i

Stop

VBA, MSA97


KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 17.08.2007 (Пт) 17:40

dormouse писал(а):

Код: Выделить всё
Dim x As Byte, y As Byte
Dim i As Byte, j As Byte, a As Byte, b As Byte
Dim ar() As Integer
y = Selection.Rows.Count
x = Selection.Columns.Count
ReDim ar(x - 1, y - 1) As Integer
For i = Selection.Row To Selection.Row + y - 1
    For j = Selection.Column To Selection.Column + x - 1
        ar(a, b) = ActiveSheet.Cells(i, j).Value
        a = a + 1
    Next j
    a = 0
    b = b + 1
Next i
Stop

Ага, или так:

Код: Выделить всё
Dim ar As Variant

ar=Selection.Value

;-)

Привет,

KL


dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя

 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский
  • ICQ

Сообщение dormouse » 17.08.2007 (Пт) 18:44

:P

VBA, MSA97



Сообщений: 5
• Страница 1 из 1

Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 2

Like this post? Please share to your friends:
  • Vba excel определить количество листов
  • Vba excel определить значение ячейки
  • Vba excel определить диапазон таблицы
  • Vba excel определение типа данных
  • Vba excel открыть лист по названию