excel - 使用 VBA-Excel 获取工作表上的值 ID 以编辑或更新另一个工作表中的列表中的数据
问题描述
关于这个问题,如何通过 vba-excel 使用按钮更新单元格 ID 是否为真,所以我需要将表 1 中的一些值更新为另一个表的数据列表。
对于样品:
在 Sheet1 中(编辑或更新单元格的任何值)
在 Sheet2中(如果 ID 为 true,则获取更新的数据)
Sub update()
Dim LR1 As Long
With Sheets("Sheet2")
LR1 = .Range("A" & .Rows.Count).End(xlUp).Row
.Range("A" & LR1) = Sheets("Sheet1").Range("B2")
.Range("B" & LR1) = Sheets("Sheet1").Range("B3")
.Range("C" & LR1) = Sheets("Sheet1").Range("B4")
.Range("D" & LR1) = Sheets("Sheet1").Range("B5")
End With
End Sub
我希望有人帮助我解决问题
解决方案
用于Find()
定位匹配行(如果存在)然后更新该行:如果未找到则添加新行
Sub update()
Dim f As Range, sht1 As Worksheet
Set sht1 = Sheets("Sheet1")
With Sheets("Sheet2")
Set f = .Range("A:A").Find(what:=sht1.Range("B1").Value, lookat:=xlWhole)
If f Is Nothing Then Set f = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
f.Resize(1, 5).Value = Application.Transpose(sht1.Range("B1:B5").Value)
End With
End Sub
编辑:逐个单元格,如果您需要更多地控制去哪里
Sub update()
Dim f As Range, sht1 As Worksheet
Set sht1 = Sheets("Sheet1")
With Sheets("Sheet2")
Set f = .Range("A:A").Find(what:=sht1.Range("B1").Value, lookat:=xlWhole)
If f Is Nothing Then Set f = .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
With f.EntireRow
.Cells(1).Value = sht1.Range("B1").value
'skip one cell then copy the rest...
.Cells(3).Resize(1, 4).Value = Application.Transpose(sht1.Range("B4:B5").Value)
'etc etc
End With
End With
End Sub
推荐阅读
- java - 使用 pom.xml 将 jar 从本地磁盘空间下载到 .m2 存储库
- javascript - 如果在材质 io 中选中复选框,则更改复选框属性
- react-native - 滚动 React Native FlatList 时继承的滚动行为
- python - 我们如何在精明的边缘检测输出周围添加边界框?
- sql - SQL在字符串中的括号之间选择多个值
- spring - 为什么@GetMapping 和@PostMapping 对同一个URI 抛出错误?
- angularjs - 表单组 - 选择下拉列表未填充,但数组显示在控制台中
- reactjs - 你如何在 React 的功能组件中执行条件渲染?
- angular - 我们如何向 mcc-color-picker-collection 中的颜色集合添加“透明”
- apache-poi - Apache POI excel如何为单元格应用文本左上缩进