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

时间:2017-07-20 18:16:05

标签: excel vba excel-vba

我正在尝试将所有公式转换为工作表中最后使用的列的值。 (最后一列每月更改)这是我目前的代码:

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

2 个答案:

答案 0 :(得分:1)

var joined = from left in leftList.Select((s, i) => new { s, i }) join right in rightList.Select((s, i) => new { s, i }) on left.i equals right.i select new { left.s.Time, left.s.Temp1, left.s.Temp2, right.s.Type }; 返回的数字不是范围。你想要那个数字的列()。

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 :(得分: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