Получение ошибки 438 в макросе VBA - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть следующий саб в Excel

Sub MapEditor()
Dim title As String
Dim tx, ty As Integer
Dim wall As String
Dim wx, wy As Integer
Dim fa As String
Dim fax, fay As Integer
Dim ora As String
Dim orax, oray As Integer
Dim datax, datay As Integer
Dim datacolumn, datarow As Integer
datacolumn = ActiveCell.Column
datarow = ActiveCell.Row
Dim dwidth As Integer, dheight As Integer
Dim i As Integer
i = 1
Do While Sheets("BaseDataFightMap").Cells(1, i) <> ""
    Select Case Sheets("BaseDataFightMap").Cells(1, i).Variant
     Case Is = "width"
       dwidth = Sheets("BaseDataFightMap").Cells(Row, i).Value
     Case Is = "height"
        dheight = Sheets("BaseDataFightMap").Cells(Row, i).Value
    End Select
    i = i + 1
Loop

Но выдает ошибку 438, что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Нет такого свойства ячейки как вариант

 Sheets("BaseDataFightMap").Cells(1, i).Variant

Вы проверяете ЗНАЧЕНИЕ ячейки (1, i)?

Sheets("BaseDataFightMap").Cells(1, i).Value?

Кроме того, в вашем коде переменная Row не измерена или не размещена, поэтому эти две строки пока не будут работать.

dwidth = Sheets("BaseDataFightMap").Cells(Row, i).Value
dheight = Sheets("BaseDataFightMap").Cells(Row, i).Value
2 голосов
/ 27 апреля 2011

Попробуйте изменить Case операторы с:

Case Is = "width"

до:

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