vba - 突出显示单元格而不是特定单元格的宏
问题描述
我正在编写一个 excel 宏,它将获取在一个 excel 工作簿中突出显示的信息并将其粘贴到新工作簿中。
我目前拥有的代码从特定单元格获取信息,但我需要它是在整个电子表格中突出显示的某些单元格。
我目前拥有的代码是
Sub copy()
Workbooks("Book2.xlsx").Worksheets("Master Data").Range("A8:I14").copy _
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1")
End Sub
编辑
通过突出显示,我并不是指用颜色或格式突出显示。我的意思是通过单击并拖动来选择多个单元格以选择单元格
解决方案
Option Explicit
Sub CopySpecificRange()
Dim srcRange As Range
Set srcRange = Worksheets(1).Range("A8:I14")
Dim myCell As Range
Dim srcRangeColored As Range
For Each myCell In srcRange
If myCell.Interior.Color = vbYellow Then
If Not srcRangeColored Is Nothing Then
Set srcRangeColored = Union(srcRangeColored, myCell)
Else
Set srcRangeColored = myCell
End If
End If
Next myCell
If Not srcRangeColored Is Nothing Then
srcRangeColored.copy Worksheets(2).Range("A2")
End If
End Sub
关于你只想要单元格,用 vbYellow 着色,上面的代码有效。只需确保您按照自己的意愿正确修复Worksheets(2)
and即可。Worksheets(1)
根据您的需要,将彩色值保存在数据结构(数组或列表)中并将其一个接一个地放在 range 中可能是一个更好的主意A2
。因此,请考虑您只对 A1:D10
范围的黄色单元格感兴趣:
因此,试图得到这个:
您可以使用myColl
as aCollection
并向其中添加任何vbYellow
单元格。然后,使用 incremented cnt
,很容易将集合的值放在一行中:
Sub CopySpecificRange()
Dim srcRange As Range
Set srcRange = Worksheets(1).Range("A1:D10")
Dim myCell As Range
Dim srcRangeColored As Range
Dim myColl As New Collection
For Each myCell In srcRange
If myCell.Interior.Color = vbYellow Then
myColl.Add myCell.Value2
End If
Next myCell
Dim cnt As Long: cnt = 1
With Worksheets(2)
For Each myCell In .Range(.Cells(1, 1), .Cells(1, myColl.Count))
myCell = myColl.Item(cnt)
cnt = cnt + 1
Next myCell
End With
End Sub
关于编辑,突出显示的意思是选中。
输入:
输出:
Sub CopySelectedRanges()
Dim myCell As Range
Dim srcRangeColored As Range
Dim myColl As New Collection
For Each myCell In Selection.Cells
myColl.Add myCell.Value2
Next myCell
Dim cnt As Long: cnt = 1
With Worksheets(2)
For Each myCell In .Range(.Cells(1, 1), .Cells(1, myColl.Count))
myCell = myColl.Item(cnt)
cnt = cnt + 1
Next myCell
End With
End Sub
推荐阅读
- c# - 如何在 .NET Core 的 appSettings.json 上配置 IdentityServer 设置?
- php - 如何修复 php 和 sql 上的“致命错误:未捕获的 TypeError:mysqli_fetch_assoc()”?
- javascript - [react-test-renderer]:为什么在运行后的测试中“警告:列表中的每个孩子都应该有一个唯一的“关键”道具”
- netlify - Netlify 的未找到页面(链接已损坏)
- ios - 根据设备更改视图 - SwiftUI
- powershell - 如何检查文件是否上次修改,并且仅使用 Add-PnPFile 使用 PowerShell 将修改后的文件从本地上传到 SharePoint
- python - pandas 数据框的第一行成为行索引。如何让它回到行?
- c++ - 向数据库添加新记录时出现问题,错误:QSqlQuery::value: 未定位在有效记录上
- django - 获取反向查找模型实例,而无需在 Django 中重复父模型值
- apache-spark - 如何删除少于 3 个字母的行?