Arrays 发送密钥以更新数组中引用的单元格
我在一些单元格中有一个硬编码公式,只有在单元格中按enter键时才会更新 我希望此宏“单击单元格并按enter键”更新值并使公式返回值 我有两个宏,一个用于更新一个特定的单元格,另一个用于更新单元格引用数组。出于某种原因,只有单单元格宏起作用。有人知道为什么吗?我希望这可能用于多个工作表和多个行/列 一个单元:Arrays 发送密钥以更新数组中引用的单元格,arrays,excel,vba,macos,reference,Arrays,Excel,Vba,Macos,Reference,我在一些单元格中有一个硬编码公式,只有在单元格中按enter键时才会更新 我希望此宏“单击单元格并按enter键”更新值并使公式返回值 我有两个宏,一个用于更新一个特定的单元格,另一个用于更新单元格引用数组。出于某种原因,只有单单元格宏起作用。有人知道为什么吗?我希望这可能用于多个工作表和多个行/列 一个单元: Private Sub One_Cell_Click() Range("$D$3").Select Application.SendKeys "{F2}" Application.Se
Private Sub One_Cell_Click()
Range("$D$3").Select
Application.SendKeys "{F2}"
Application.SendKeys "{ENTER}"
End Sub
多细胞
Private Sub All_Cells_Click()
Dim cellUpdates(0 To 3) As Variant
Dim cell As Variant
cellUpdates(0) = "$D$3"
cellUpdates(1) = "$D$4"
cellUpdates(2) = "$G$5"
cellUpdates(3) = "$Y$6"
For Each cell In cellUpdates
Range(cellUpdates(cell)).Select
Application.SendKeys "{F2}"
Application.SendKeys "{ENTER}"
Next cell
End Sub
你可以试试这个:
Private Sub All_Cells_Click()
Dim cell As Variant
For Each cell In ActiveSheet.Range("D3,D4,G5,Y6").Cells
With cell
.Formula = .Formula
.Calculate
End With
Next cell
End Sub
第一部分在下面进行了介绍,但是我试图让数组中有不同行/列中的多个单元格。第二部分将仅在作为数组中第一个值引用的列中运行。(如果是A列,它将只沿A列向下移动,直到I=4,而不会移动到不同的列和行) 非工作部件:
Private Sub All_Cells_Click()
Dim cellUpdates(0 To 4) As Variant
Dim i As Integer
cellUpdates(0) = "$A$2"
cellUpdates(1) = "$B$3"
cellUpdates(2) = "$C$4"
cellUpdates(3) = "$D$5"
cellUpdates(4) = "$E$6"
For i = 0 To UBound(cellUpdates)
Range(cellUpdates(cell)).Select
Application.SendKeys "{F2}"
Application.SendKeys "{ENTER}"
Next i
End Sub
您是否尝试过设置
cell.Formula=cell.Formula
或调用cell.Calculate
?不确定这意味着什么,您能否详细说明一下?运行它时不做任何事情?它在每个单元格上单击,但不更新值。单元格当前的措辞为ex:“=D1+D2”。单元格计算的唯一方法是单击单元格并按enter键。这是一个奇怪的.xlsm工作簿,在一个范围内调用Calculate应该会导致它更新
Private Sub All_Cells_Click()
Dim cellUpdates(0 To 4) As Variant
Dim i As Integer
cellUpdates(0) = "$A$2"
cellUpdates(1) = "$B$3"
cellUpdates(2) = "$C$4"
cellUpdates(3) = "$D$5"
cellUpdates(4) = "$E$6"
For i = 0 To UBound(cellUpdates)
Range(cellUpdates(cell)).Select
Application.SendKeys "{F2}"
Application.SendKeys "{ENTER}"
Next i
End Sub