返回列表 上一主題 發帖

vba 語法請教

回復 1# 01300607
  1. '傳回最後有資料儲存格列號: 資料在 1欗-30欗,第1列開始到10列 超過第10列後續有資料的儲存格,所間隔的列數不可大於10列.
  2. Function findx(ByVal objsheet As Worksheet) As Long   '函數型態 : Long (長整數)
  3.               'ByVal 選擇性引數。表示以傳值的方式來傳遞引數。
  4.               'objsheet(參數) As(型態)  Worksheet(工作表物件)
  5.     Dim x As Integer, L As Integer, k As Integer, kk As String
  6.     x = 0
  7.     Do   'While True : 這條件是預設,可不寫
  8.         kk = ""             '資串歸零
  9.         For L = 1 To 10     'L: 列號 (1-10)
  10.             For k = 1 To 30 'k: 欗號 (1-30)
  11.                 'objsheet.Cells(x + L, k) -> objsheet.Cells( X+列號L , 欗號 )
  12.                 If IsError(objsheet.Cells(x + L, k)) = False Then       '不為錯誤值:條件成立
  13.                   'IsError 函數  傳回 Boolean 值,用來指出運算式是否為一個錯誤值。
  14.                     kk = kk & objsheet.Cells(x + L, k)      '累加[不為錯誤值存格]的內容
  15.                 End If
  16.             Next
  17.         Next
  18.         '跑完 objsheet.Cells(x + 1, 1) 到 objsheet.Cells(x + 10, 30) 的範圍
  19.         If kk = "" Then Exit Do                               '跑完的範圍內沒有資料:離開迴圈
  20.         x = x + 1                                             '紀錄有資料的次數 => 最後有資料的列號列號
  21.     Loop
  22.     findx = x
  23. End Function
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 靜坐常恩己過、閒談莫論人非。
返回列表 上一主題