我需要找出一种方法将单元格的值复制到工作表中的其他单元格。我正在考虑循环,但我不知道该怎么做。
例如,我希望我的循环从单元格“B16”开始,遍历B列中的每个单元格,直到它到达具有值“Automation Table:”的单元格。在这之间,如果一个单元格包含任何值/字符串,那么它应该从其当前位置移动5列并将值“Hello”分配给该单元格。
这是我目前所拥有的,但它不能正常工作:
Sub TC_data()
Dim x As String
Dim found As Boolean
' Select first line of data.
Range("B16").Select
' Set search variable value.
x = "*string*"
' Set Boolean variable "found" to false.
found = False
' Set Do loop to stop at a non-empty cell.
Do Until ActiveCell.Value = "Automation Table:"
'Do Until IsEmpty(ActiveCell)
' Check active cell for search value.
If ActiveCell.Value = x Then
ActiveCell.Offset(0, 5).Select
ActiveCell.Offset(0, 5).Value = "Hello"
found = True
Exit Do
End If
' Step down 1 row from present location.
ActiveCell.Offset(1, 0).Select
Loop
End Sub
它忽略了所有其他语句,只是使用值“Automation Table:”
进入单元格答案 0 :(得分:0)
您应该尽可能避免使用.Select
支持直接的单元格和范围引用。
Sub B2AutoTable()
Dim b As Long, bat As Long, x As String
bat = Application.Match("Automation Table:", Columns(2), 0) - 1
x = LCase("*String*")
For b = 16 To bat
'this option is for a pattern match to x
If LCase(Cells(b, "B").Value) Like x Then Cells(b, "G") = "ahoj"
'the next line is for any value or string
'If CBool(Len(Cells(b, "B").Value)) Then Cells(b, "G") = "ahoj"
Next b
End Sub
我给了您两个选项,因为您的描述似乎与您发布的代码段不同。
这假定自动化表:值在B列的某个位置,最好在第16行以下。如果这不是绝对确定的,则必须进行一些错误控制。如果您遇到问题,请回复您的尝试,我会尽力帮助。