поэтому у меня есть два диапазона, установленные в двух кодах. Моя проблема в том, что диапазон специфичен. Независимо от того, насколько я изменил его, я получаю сообщение об ошибке. Моя цель - установить диапазон от С1 до тех пор, пока данные не прекратятся (то же самое для столбца J). Диапазон варьируется в зависимости от того, какая электронная таблица у меня открыта, поэтому я хотел бы, чтобы она обнаружила конец данных и остановилась там. Каждая ячейка будет ВСЕГДА иметь данные, поэтому вам не нужно беспокоиться о пустых ячейках между ними.Установка правильного диапазона столбцов в VBA для excel
Вот мой код:
Sub Condition()
Set Rng = Range("C1:C1822")
For Each cell In Rng
If cell.Value <> "SB" Then
cell.Offset(0, 8).Value = "Introduced by Assemblymember"
Else
cell.Offset(0, 8).Value = "Introduced by Senator"
End If
Next
End Sub
'CORRECT LOWER CASE THEN UPPER CASE FIRST LETTER AND OFFSET TO NEW COLUMN
Sub Change()
Dim Rng As Range
Dim c As Range
Set Rng = ActiveSheet.Range("J1:J1822")
For Each c In Rng
c.Offset(, 2).Value = LCase(c.Value)
Next c
For Each cell In Application.ActiveSheet.UsedRange
If (cell.Value <> "") Then
cell.Value = UCase(Left(cell.Value, 1)) & Right(cell.Value, Len(cell.Value) - 1)
End If
Next
End Sub
Моя проблема опирается в начале на:
Sub Condition()
Set Rng = Range("C1:C1822")
For Each cell In Rng
, а затем появляется снова:
Sub Change()
Dim Rng As Range
Dim c As Range
Set Rng = ActiveSheet.Range("J1:J1822")
For Each c In Rng
c.Offset(, 2).Value = LCase(c.Value)
Next c
For Each cell In Application.ActiveSheet.UsedRange
If (cell.Value <> "") Then
cell.Value = UCase(Left(cell.Value, 1)) & Right(cell.Value, Len(cell.Value) - 1)
End If
Большое вам спасибо! Ваше предложение отлично работало. – marcizoub