|
楼主 |
发表于 2024-8-6 20:33
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
老大,下面这个颜色代码可以整合到您的代码里面吗?
这是AI 的代码
本人太菜了
---------------------------------------------------------------
将A1单元格开始的区域(包括22列)赋值给数组ar 并保留字体颜色
在VBA中,要将单元格区域的值和字体颜色同时赋值给数组,你需要分别处理这两部分信息。由于VBA的数组不支持直接存储字体颜色这样的样式属性,你需要另外的方式来记录这些信息。
以下是一个示例,展示了如何将A1单元格开始的区域的值和字体颜色赋值给两个不同的数组:
vba
Sub CopyValuesAndFontColorToArrays()
Dim sh As Worksheet
Dim r As Long, arValues As Variant, arColors As Variant
Dim cell As Range
Dim i As Long, j As Long
Set sh = Sheets("Sheet1") ' 假设数据在Sheet1
' 获取最后一行的行号
r = sh.Cells(sh.Rows.Count, 2).End(xlUp).Row
' 初始化数组大小
ReDim arValues(1 To r, 1 To 22)
ReDim arColors(1 To r, 1 To 22)
' 遍历单元格区域,复制值和字体颜色
For i = 1 To r
For j = 1 To 22
Set cell = sh.Cells(i, j)
' 将数据赋值给数组
arValues(i, j) = cell.Value
' 将字体颜色赋值给数组
arColors(i, j) = cell.Font.Color
Next j
Next i
' 现在,arValues 包含了单元格的值,arColors 包含了相应的字体颜色
End Sub
在这个示例中,arValues 数组用来存储单元格的值,而 arColors 数组用来存储对应单元格的字体颜色。这样,你就有了两个数组,一个用于值,另一个用于颜色。
请注意,字体颜色的存储可能需要转换为可以存储在数组中的格式,例如RGB颜色值的整数形式。当你需要将这些颜色应用到其他单元格时,你可以使用类似下面的代码:
vba
' 假设你要将颜色应用到另一个工作表的相应单元格
Dim targetSh As Worksheet
Set targetSh = Sheets("Sheet2")
For i = 1 To r
For j = 1 To 22
targetSh.Cells(i, j).Font.Color = arColors(i, j)
Next j
Next i
这样,你就可以在另一个地方重建具有相同字体颜色的单元格布局。
---------------------------------------------------------------------------------------------------- |
|