Excel VBA:如何将公式转换为上次使用的列的值?

我试图把我所有的公式转换成我的工作表中最后使用的列的值。 (最后一列每月更改)这是我的代码到目前为止:

Sub turnvalues2() Set rng = Range(4, Columns.Count).End(xlToLeft).Column - 1 rng.Value = rng.Value End Sub 

Range(4, Columns.Count).End(xlToLeft).Column - 1返回一个数字不是一个范围。 你想要在这个数字的列()。

 Sub turnvalues2() Set rng = Columns(Cells(4, Columns.Count).End(xlToLeft).Column - 1) rng.Value = rng.Value End Sub 

此外, - 1将其移动到倒数第二个使用的列,您可能需要删除该列以获取最后一列。

使用Range.Find获取最后一个填充列的替代版本:

 Sub tgr() Dim ws As Worksheet Dim rFound As Range Set ws = ActiveWorkbook.ActiveSheet Set rFound = ws.Cells.Find("*", ws.Range("A1"), xlFormulas, , xlByColumns, xlPrevious) If Not rFound Is Nothing Then rFound.EntireColumn.Value = rFound.EntireColumn.Value End Sub