回覆列表
  • 1 # 河南新華電腦1q

    首先我們開啟一個工作樣表作為例子。

    使用alt+f11組合快捷鍵進入vbe編輯器,插入一個新的模組,並在模組中輸入以下程式碼:

    Option Explicit

    Sub Random()

    Dim myRange As Range

    Dim rng As Range

    "設定對單元格區域的引用

    Set myRange = Worksheets("Sheet1").Range("A1:D5")

    Set rng = Worksheets("Sheet1").Range("e1:i5")

    "對Range物件進行操作

    myRange = "=rand()"

    rng.Value = myRange.Value

    myRange.Font.Bold = True

    End Sub

    這裡我們設定了2個區域變數,直接宣告它們是range型別,這樣才能對其區域單元格進行引用。如果去掉型別宣告,那麼過程將會報錯需要物件。這點大家要注意。

    Dim myRange

    Dim rng 會報錯。

    我們先來設定以下區域單元格的範圍,這裡myRange是在sheet1工作表中的a1到d5的矩形連續單元格範圍。而rng是同樣sheet1工作表中的e1到i5的矩形連續單元格。

    因為聲明瞭range型別,所以我們這裡直接可以對myRange變數進行賦值,使用=號直接賦值即可。由於我們賦值的是一個excel程式函式,所以要用雙引號括起來。

    接著重點是,如果要對這個區域內的單元格值進行引用,我們必須清楚寫清楚是引用的兩個區域的值value。寫法就要這樣

    rng.Value = myRange.Value

    最後我們可以得到正確的結果,在這兩個區域中myRange是隨機函式公式,而rng是固定的當次執行隨機函式後的值。這裡兩個值不對應一致是因為在貼上操作後rand()函式重新計算了一次的結果。

    祝大家生活愉快。

  • 2 # 劍雲鋒

    首先我們開啟一個工作樣表作為例子。

    在excel中我們框選一個區域範圍,然後在其中選擇一個單元格輸入公式,這個時候需要藉助ctrl鍵進行組合操作。

    而在vba中,我們可以直接指定一個範圍,然後在範圍內指定單元格輸入公式。與excel中操作不同,excel裡可以在框選的範圍後,選取範圍外的單元格進行輸入。

    我們使用alt+f11組合快捷鍵進入vbe編輯器,插入一個新的模組,並在模組中輸入以下程式碼:

    Sub SetSheetTabColor()

    Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"

    End Sub

    我們可以看到vba程式碼中的cells單元格的設定座標是從range指定範圍的左上角起始序列開始計算,也就是cells(1,1)並不是a1單元格而是c5單元格。

    所以如果我們把cells單元格設定為一個超出range範圍的單元格序列,那麼就會出現以c5單元格為基準座標進行位移。Worksheets("sheet1").Range("C5:C10").Cells(0, 0).Formula = "=Rand()"比如這個程式碼最後寫入公式的單元格在B4

    網上看的,相對比較實用。

  • 3 # Excel和VBA

    如果可以直接用函式解決的,其實不需要一定寫VBA

    如果一定要寫VBA的話,大執格式是這樣的:

    rng..FormulaR1C1 = "=" & 函式的名字& "(RC[-" & Rng.Columns.count & "]:RC[-1])"

    我這裡是假設模擬sum函式的寫法

  • 中秋節和大豐收的關聯?
  • 抄手肉餡加蔥白和薑末後,為啥容易變綠色?