将单元格值复制并粘贴到新的单元格值中,然后重复该过程
Copy and paste cell value into until new cell value then repeat the process
我正在尝试创建一个宏,它将 copy/paste 或将前一个单元格的值重复到下一个空白单元格中,直到出现新的单元格值,然后重复直到一组范围的末尾365 个细胞。下面的 imgur link 中的示例试图形象化我的意思,第二行是所需的结果。
除非我误解你了,这在 excel 中使用公式很容易。 VBA 太过分了。
单元格 A2 中的公式为 =A1
。单元格 B2 中的公式只是 =IF(B1="",A2,B1)
,如果单元格 B1 为空,则使用单元格 A2 中的值,否则如果 B1 不为空,则使用 B1 中的值。然后,只要您的参考值与图像中第 1 行中的一样,您就可以将此公式复制到第 2 行中。
这是VBA中的解决方案。
Sub ReferAndRepeat()
Dim tempVal As String
Dim sheet As String
sheet = "Sheet1" 'Name your sheet here
For lCol = 1 To 365
If Sheets(sheet).Cells(1, lCol) <> "" Then
tempVal = Sheets(sheet).Cells(1, lCol).Text
End If
Sheets(sheet).Cells(2, lCol) = tempVal
Next lCol
End Sub
我正在尝试创建一个宏,它将 copy/paste 或将前一个单元格的值重复到下一个空白单元格中,直到出现新的单元格值,然后重复直到一组范围的末尾365 个细胞。下面的 imgur link 中的示例试图形象化我的意思,第二行是所需的结果。
除非我误解你了,这在 excel 中使用公式很容易。 VBA 太过分了。
单元格 A2 中的公式为 =A1
。单元格 B2 中的公式只是 =IF(B1="",A2,B1)
,如果单元格 B1 为空,则使用单元格 A2 中的值,否则如果 B1 不为空,则使用 B1 中的值。然后,只要您的参考值与图像中第 1 行中的一样,您就可以将此公式复制到第 2 行中。
这是VBA中的解决方案。
Sub ReferAndRepeat()
Dim tempVal As String
Dim sheet As String
sheet = "Sheet1" 'Name your sheet here
For lCol = 1 To 365
If Sheets(sheet).Cells(1, lCol) <> "" Then
tempVal = Sheets(sheet).Cells(1, lCol).Text
End If
Sheets(sheet).Cells(2, lCol) = tempVal
Next lCol
End Sub