首页 > 解决方案 > VBA - 每次单击按钮时复制不同单元格中的值

问题描述

我正在处理一个小型电子表格,其目的是插入一个与深度相关联的值,然后单击一个验证按钮,该按钮将此类值复制到不同工作表上的单元格中,清除原始工作表上插入的值,并在同时,更新要插入的下一个值的深度(+0.20 步长)。这是我到目前为止创建的:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
        Sheets("DPSH").Range("B2").Copy
        ActiveWorkbook.Sheets("DPSH (Totale)").Range("B2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Sheets("DPSH").Range("B2").ClearContents
        Sheets("DPSH").Range("A2").Value = Range("A2") + 0.2
Application.ScreenUpdating = True
End Sub

它适用于第一个值,但这是挑战。我必须通过单击第二个按钮将第二个值复制到另一个单元格(工作表“DPSH Totale”,单元格“B3”),然后通过单击第三个按钮将第三个值复制到另一个单元格, (表“DPSH Totale”,单元格“B4”)等。如果请求看起来很愚蠢,我很抱歉,但我并不是 VBA 的专业人士。提前感谢您的友好建议。

标签: excelvba

解决方案


如果您的要求是复制到 B2 或 B2 下的下一个空单元格,这应该可以工作

Private Sub CommandButton1_Click()
    
    Dim c As Range, ws As Worksheet
    
    Set ws = Sheets("DPSH")
    
    Set c = ThisWorkbook.Sheets("DPSH (Totale)").Range("B2")
    'find the first empty cell to copy to
    Do While Len(c.Value) > 0
        Set c = c.Offset(1, 0)
    Loop
    c.Value = ws.Range("B2").Value
    ws.Range("B2").ClearContents
    ws.Range("A2").Value = ws.Range("A2").Value + 0.2
    
End Sub

推荐阅读