在Excel的VB編輯器中自定义函数如下: 
Public function gx(a, i) 
Sheets(a).Select 
Range("a1").Select 
gx=i 
End function 回到Excel工作表单状态下,在任一单元格中输入"=gx(sheet3,9)",结果为“#NAME?”。预期是函數打开sheet3表单并在A1单元格中填入9。

解决方案 »

  1.   

    Public Function gx(a As String, i As Long) As Long
        Sheets(a).Select
        Range("A3").Select
        gx = i
    End Function=gx("sheet3",9)
      

  2.   

    GGL123還是一樣的結果,是我沒理解你的意思嗎?
      

  3.   

    这个是不是有问题呀
     Range("A3").Select
      

  4.   

    EXCEL自定义函数不支持对象属性(如 其他单元格赋值,字体颜色,大小等)的设置。可以换个思路解决。
      

  5.   

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim temp() As String
    If Target Like "gx(*,*)" Then
    temp = Split(Split(Split(Target, "(")(1), ")")(0), ",")
    Sheets(temp(0)).[a1] = temp(1)
    Target = ""
    End If
    End Sub用法:
    sheet1单元格中键入gx(sheet3,2345),回车
      

  6.   

    學習,一定努力!
    謝謝“狼行天下”and“GGL123”