首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取工作表上的值ID,以便使用VBA-Excel编辑或更新另一个工作表中的列表中的数据。

获取工作表上的值ID,以便使用VBA-Excel编辑或更新另一个工作表中的列表中的数据。
EN

Stack Overflow用户
提问于 2019-06-07 03:36:00
回答 1查看 332关注 0票数 0

关于这个问题,如何通过values按钮更新单元ID是否为真,所以我需要从表1(一个表列)到另一个工作表(一个数据列表)更新一些值。

样本:

In Sheet1 (编辑或更新单元格的任何值)

In Sheet2 (如果ID为真,则更新数据)

代码语言:javascript
运行
复制
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

我希望任何人帮助我解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 04:17:12

使用Find()定位匹配行(如果存在),然后更新该行:如果未找到,则添加新行

代码语言:javascript
运行
复制
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

编辑:如果你需要更多的控制到哪里去,那就逐个单元。

代码语言:javascript
运行
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56487634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档