excel - 连接单元格(在循环中使用变量)并在 VBA 中保持填充颜色
问题描述
我有一个看起来像这样的 excel 文件:
所以我在工作表中有这些矩阵(假设这是 Sheet1)。我有很多类似的床单。我需要在另一张表中得出结果,结果如下所示:
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
.
.
.
4599
所以我需要连接单元格才能得到上述结果。在我的示例中,假设数字“45”位于合并单元格 A1、B1、C1、D1、E1、F1、G1、H1、I1、J1 上。在该矩阵中,标题为“45”:
- “00”将在 A2 上,
- “01”将出现在 B2 上,以此类推。
连接很简单。(或不...)
我制作了一张新工作表(Sheet2),制作了一个命令按钮并输入了以下代码:
Range("A1").Value = Worksheets("Sheet1").Range("A1") & Worksheets("Sheet1").Range("A2")
Range("A2").Value = Worksheets("Sheet1").Range("A1") & Worksheets("Sheet1").Range("B2")
and so on, which works, but i would like something with variables...
但我是 VBA 的新手,不太明白如何才能不编写数百行代码......
另一个(大)问题是我需要保留参与连接的最后一个单元格的颜色。
示例:
For "4500" the colour in the results sheet must be blue.
For "4555" the colour in the results sheet must be white.
For "4580" the colour in the results sheet must be yellow.
所以我需要保持准确的索引颜色。
我需要做这些连接并保持每个矩阵的颜色。我不知道如何保持颜色..我使用了Interior.ColorIndex的东西,但我在连接之后手动放置了它..这对我的情况不起作用,因为这个excel文件非常大。
我想我需要做一个循环并连接并同时保持颜色。
我是 VBA 的新手,但我觉得这很有趣。非常感谢任何帮助。先感谢您!
解决方案
循环块的粗略轮廓:
Dim rng As Range, c As Range, cDest As Range, hdr
Set cDest = ThisWorkbook.Sheets("Data").Range("a2")
Set rng = ActiveSheet.Range("B2:K11")
hdr = rng.Cells(1).Offset(-1, 0).Value 'header
For Each c In rng.Cells
With cDest
.Value = hdr & c.Text
.Interior.Color = c.Interior.Color
End With
Set cDest = cDest.Offset(1, 0)
Next c
推荐阅读
- python - 在训练 Bert 二进制分类模型时,Huggingface 变形金刚返回“ValueError:要解包的值太多(预期为 2)”
- eclipse - Eclipse 上未绑定的 Java 16
- java - 当我添加“公共”时,Java 类不起作用
- java - NPE 使用嵌入式 Kafka 测试 Kafka Producer
- python - 找不到参数 '('',)' 的 'read_post' 无法解决 thisReverse。尝试了 1 种模式:['read_post/(?P
[0-9]+)$'] - javascript - 如何删除javascript对象中指定字段以外的任何其他字段?
- java - 基于唯一索引的批量写入 upsert
- sql - 用于分组两列和第三列中的逗号分隔值的sql查询
- java - 只读取对象的第一个数组
- vue.js - Vue 3 & Composition API:v-for 循环中的模板引用错误:仅获取代理