【发布时间】:2015-12-19 04:42:52
【问题描述】:
我正在为 Excel 创建代码,以将上一列中单元格的内容复制到下一个单元格。我要复制其内容的单元格是绿色的。但我需要搜索整个工作簿和所有工作表中的所有内容,因为每个绿色单元格可以位于不同的列中。我的代码是:
Dim wb As Workbook
Dim sht As Worksheet
frow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
fcol = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Column
Cells.UnMerge
Set wb = ActiveWorkbook
For Each sht In wb.Sheets
For ncol = 1 To fcol
For nrow = 1 To frow
If Cells(nrow, ncol).Interior.Color = RGB(0, 128, 0) Then
Cells(nrow, ncol - 1).Copy
Cells(nrow, ncol).Select
ActiveSheet.Paste
Cells(nrow, ncol).Interior.Color = RGB(0, 128, 0)
End If
Next
Next
但问题是在某些工作表中,带有绿色单元格的列是空的,代码只获取所有包含内容的列(因此 fcol 是 totalColumnstoProcess-1),因此它不会将内容复制到我的单元格想要。
总而言之:我想查看工作簿中的所有工作表,检测绿色单元格的位置并将该内容复制到下一列的同一行。
还有其他方法可以处理工作表中的所有内容吗? 知道为什么我的代码不起作用吗?
【问题讨论】: