Sub xx()
   Dim y As Range
   Set y = leftup(Range("B1"))
   MsgBox y.Address
End Sub
Function leftup(rangess As Range) As Range 
    Dim xsheet As Worksheet
   Set xsheet = rangess.Worksheet
   Set leftup = xsheet.Range("A1")
End Function
    以上是我编的一个函数,但是现在我改进一下,就是函数leftup的参数和leftup的算出来的值都是range的,但是我发觉用range确定单元格的时候,只能用A1这样的表示,而不能像cells那样用Cells(1,1)来表示一个单元格,所以我就觉得很麻烦。
     我想问一下,这里的高人,能不能把leftup和rangess定义成其他的类型,可以使得其输入和输出能够有类似于cells那样的定位,或者麻烦告诉我一下,range的定位,除了A1之外,还有什么确定一个单元格的方法。

解决方案 »

  1.   

    Sub xx()
          Dim y     As Range, X As Range
          Set y = leftup(Range("B1"))
          
          Set X = Cells(y.Row, y.Column)
          
          MsgBox X.Address
          
    End Sub
    Function leftup(rangess As Range) As Range
            Dim xsheet     As Worksheet
          Set xsheet = rangess.Worksheet
          Set leftup = xsheet.Range("A1")
    End Function
      

  2.   


    Sub xx()
                Dim y             As Range, X       As Range
                Dim Ws As Worksheet
                Set y = leftup(Range("B1"))
                
                Set X = Cells(y.Row, y.Column)
                
                Set Ws = X.Parent
                
                MsgBox X.Address & Chr(13) & Chr(13) & Ws.Name
                
    End Sub
    Function leftup(rangess As Range) As Range
                    Dim xsheet             As Worksheet
                Set xsheet = rangess.Worksheet
                Set leftup = xsheet.Range("A1")
    End Function
      

  3.   

    多用用帮助文件,查个Range对象,什么方法属性不就都有了