Я новичок в VBA
, и мне не удается сделать то, что я хочу, хотя это очень просто.Используйте значение ячейки в функции VBA с переменной
Мне нужно автоматически изменить ячейки большой (333x333) пустой (полной нулей) таблицы.
В отдельной таблице у меня есть строка и столбец всех ячеек для изменения. (5000 из них)
A for
Петля, похоже, подходит для этой цели.
Вот код моего макроса. Проблема появляется на линии до последней.
Dim val1 As String, val2 As String, i As Integer
For i = 1 To 333
Sheets("Feuil2").Activate
ActiveSheet.Cells(i, 1).Select
val1 = Cells(i, 1).Value
val2 = Cells(i, 2).Value
Sheets("Classeur2.csv").Select
Cells(val1, val2).Select
ActiveCell.FormulaR1C1 = "1"
Next i
Линия, которая вызывает проблему, это одно: Cells (VAL1, val2) .Select
Я считаю, что моя ошибка является синтаксической ошибкой. Но я не могу узнать, что я должен добавить до, после или вокруг двух переменных «val1» и «val2»
Как вы думаете?
Большое спасибо за помощь. Николас.
Редактировать
Моя проблема теперь решена:
Первый ответ именно то, что мне нужно, чтобы мой мужской макро работы. Второй ответ - правильный и быстрый способ сделать это.
Спасибо, Питер, это хорошо знать. Я дам ему попробовать в следующий раз. –
Ну, я должен вам большое спасибо! Сегодня мне пришлось масштабировать макрос, чтобы рассмотреть 5000 строк. Прошло более 20 минут, чтобы пройти первые 3000 строк. Я знаю это, потому что мне пришлось остановить макрос и попробовать ваше решение. Я использовал эти 20 минут, чтобы понять нотацию «Range». Это быстрее (около минуты сейчас). –
Вы можете ускорить его еще больше, вставив 'Application.ScreenUpdating = False' и' Application.Calculation = xlCalculationManual'! В конце макроса сбросьте его с помощью «Application.ScreenUpdating = False» и «Application.Calculation = xlCalculationAutomatic» :-) –