我对Excel公式有基本的了解,但对VBA没有经验。我正在创建一个基本的电子表格来跟踪人们的出勤情况。这个电子表格将由比我更不了解的人每天完成。
列B是从另一个工作表中的DB表验证的数据。列D、E、F、G使用XLOOKUP根据列B上的名称从同一个DB表中提取数据。
问题:如果DB表中的某些内容发生了变化,比如一个人的帐号,那么这个人过去的每次出勤都会被更新。
Example
我需要一种简单的方法来“锁定”已经填充的单元格中的数据,尽管它们应该接受手动编辑。
到目前为止,我试着在工作表的某个地方放一个按钮,删除所有公式,但保留单元格的值。我用谷歌搜索了一下,得到了这个:
Sub Remove_Formulas_from_Selected_Range()
Dim Rng As Range
Set Rng = Selection
Rng.Copy
Rng.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
End Sub
但我不知道如何调整按钮,使它检查表的每一行,如果该行的B列不是空的(这意味着该行是用一个人的数据填充),只有然后删除该行的公式,并保留值。
2条答案
按热度按时间xmd2e60i1#
您的文件必须是.xlsm文件。添加一个ActiveX按钮。双击它。在创建的button_click()sub中添加一行:call doTheJob -粘贴以下代码后:
在单击按钮之前,您必须选择您感兴趣的范围,以将公式替换为值。
d7v8vwbk2#
当范围是表时使用此代码。将“NameOfTable”修改为表的真实的名称。