excel - 需要在一个表上查找名称并将分配的值添加到另一个表中与该名称匹配的所有单元格
问题描述
我是 VBA 的新手,一直在从事这项任务,我在 Sheet1 上有一个表格,其中列出了分配给它们的名称和编号:
Name Number
A 5
R 4
T 6
Y 2
Sheet2 中的另一个表,其名称为标题,每列有很多值:
A B R W Y
10 40 70 10 40
20 50 80 20 50
30 60 90 30 60
我需要找到第一个表中的所有名称,并将该数字添加到第二个表中该名称的所有值中,结果将是:
A B R W Y
15 40 74 10 42
25 50 84 20 52
35 60 94 30 62
表格有数百个名称,因此使用公式并不容易。关于从哪里开始使用宏/VBA 的任何想法?
解决方案
希望你能从中学习,而不是照搬。
我假设您的 Excel 表格应该是这样的(值从单元格 A2 和 B2 开始):
一个 | 乙 |
---|---|
姓名 | 数字 |
一个 | 5 |
R | 4 |
吨 | 6 |
是 | 2 |
这是带有注释的代码:
Option Explicit
Sub test()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim ws As Worksheet
Dim ws2 As Worksheet
Set ws = wb.Worksheets("Sheet1")
Set ws2 = wb.Worksheets("Sheet2")
Dim i As Integer
Dim j As Integer
Dim col As String
Dim CellName As String
Dim addnumber As Double
'First, you need to count the number of rows of column A with non-empty value
' and hence you can assign the value to variable one by one using For Loop
For i = 0 To ws.Range("A2", ws.Range("A2").Cells.End(xlDown)).Rows.Count - 1
'col = A,R,T,Y during this loop
col = ws.Range("A2").Offset(i, 0).Value
'addnumber = 5,4,6,2 during this loop
addnumber = ws.Range("A2").Offset(i, 1).Value
'CellName = A1,R1,T1,Y1 during this loop
CellName = col + "1"
'Skip to do addition (Example: Column "T" does not contain value)
If ws2.Range(CellName).Value <> "" Then
'Same logic as mention above
For j = 0 To ws2.Range(CellName, ws2.Range(CellName).Cells.End(xlDown)).Rows.Count - 1
'do addition
ws2.Range(CellName).Offset(j, 0).Value = ws2.Range(CellName).Offset(j, 0).Value + addnumber
Next
End If
Next
End Sub
推荐阅读
- python - 为什么 Django 模板中的 .url 没有链接到模型的“upload_to=”目录?
- swift - 根据搜索查询显示 Firebase 信息 [Firebase][Swift]
- c++ - C++ While循环不重新分配字符串值
- python - Python to_datetime 产生错误的日期
- python - 导入GeneticAlgorithm ModuleNotFoundError:没有名为“libs.GeneticAlgorithm”的模块
- sql - 产生数据类型不匹配错误的 SQL 联合查询
- javascript - 通过 iframe 调用 React Web App 是一种好习惯吗?
- android - 默认 FirebaseApp 未初始化,但我确实初始化了它
- c++ - &(array+1) 在 &arr 工作时给出编译错误
- java - 编写将对象添加到数组的方法