时间海报。我正在运行Excel 2010,我已经完成了一些VBA的工作,但我仍然是一个新手,我真的一直在转动这个。所以......
我的工作表中有这些单元格 - 这是他们所做的(这是假设的):
这就是我需要一个宏来做的事情,只要我把它放入A1并点击返回:
提前感谢您提供的任何帮助!
答案 0 :(得分:0)
您需要将其放在要使其处理的特定工作表的代码中。当我测试它时,它的速度非常快,你真的没有看到A1含有任何东西。如果你想看到它,我想你可以在那里等一下。但是要将此代码放在左侧树上的工作表中(只是因为您不知道),您将看到VBAProject("工作簿名称")> Microsoft Excel对象>第1页("工作表名称")
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim keyCell As Range
Dim adr As String, str As String
Set ws = ActiveSheet
Set keyCell = ws.Range("A1")
If Not Application.Intersect(keyCell, Target) Is Nothing Then
adr = ws.Range("B1")
str = ws.Range("C1")
ws.Range(adr) = str
With ws.Range("A1")
.ClearContents
.Select
End With
End
End If
End Sub
希望这有帮助!
答案 1 :(得分:0)
好的,所以这就是我最终想出来的,它有效......
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
c = Range("b1").Value
i = Range("c1").Value
If Target.Value = "" Then
Exit Sub
Else
Range(c) = i
Target.Select
Selection.ClearContents
End If
End If
End Sub
我假设(还没有这样做)我可能将变量c和i嵌入到“else”下面的那一行,但是现在,我想这更容易思考。我不确定为什么这有效,其他人没有。出于某种原因,我的宏似乎......间歇性的。
无论如何,再次感谢!