2015-09-15 4 views
0

Я хотел бы сделать что-то подобное с помощью VBA в Excel. Мне нужно скопировать каждое значение в столбце A (текстовое или числовое) и формат ячейки в столбец B дважды. Результат должен быть таким:Как скопировать значение из ячейки в различные ячейки VBA Excel

enter image description here Как это можно сделать в VBA?

ответ

0

Возможно, существует несколько десятков различных ответов на этот вопрос, поскольку вы не очень точны. Тем не менее, это один из возможных ответов:

Option Explicit 

Public Sub Test() 
Dim lngRow As Long 

For lngRow = 1 To 4 
    Worksheets("Sheet1").Cells(lngRow, 1).Formula = "=row()" 
    Worksheets("Sheet1").Cells(lngRow + lngRow - 1, 2).Formula = "=A" & lngRow 
    Worksheets("Sheet1").Cells(lngRow + lngRow, 2).Formula = "=A" & lngRow 
Next lngRow 

End Sub 
+0

Но как насчет того, если у меня есть 1000 значений в столбце A? Мне нужно иметь петлю через все эти ячейки. –

+0

Затем измените строку 'For lngRow = 1 to 4' и сделайте ее' Для lngRow = от 1 до 100'. – Ralph

+0

Я просто добавлю ответ, потому что не знаю, почему я не могу отредактировать комментарий –

0

Я сделал это так:

Private Sub CommandButton1_Click() Dim WS Как Worksheet

For Each WS В ThisWorkbook.Worksheets

Dim c As Range 
For Each c In ws.UsedRange.Columns("A").Cells 
ActiveSheet.Cells(c.Value, 1).Formula = "=row()" 
ActiveSheet.Cells(c.Value + c.Value - 1, 2).Formula = "=A" & c.Value 
ActiveSheet.Cells(c.Value + c.Value, 2).Formula = "=A" & c.Value 

Следующий c Следующий ws

End Sub

Но если я помещаю нечисловое значение в первый столбец, это не сработает. Что мне не хватает?

+0

Я настоятельно рекомендую вам потратить несколько секунд на чтение «своего» кода, и вы поймете, что нет никаких сомнений. Как вы сами сказали: «... если вы попытаетесь использовать свой код с нечисловыми значениями, тогда это не сработает». Это очевидно, поскольку в вычислении используется нечисловое значение. Пример: если вы попробуете его с нечисловым значением «x», тогда ваш код даст это в последней строке: «ActiveSheet.Cells (« x »+« x », 2) .Formula =« = Ax ». Вот почему мое решение ** не ** основано на 'cell.Value'. – Ralph

Смежные вопросы