標題:
[發問]
vba上沒辦法直接讀取C2/B5等儲存格的數值
[打印本頁]
作者:
jiuhtsair
時間:
2019-2-19 19:41
標題:
vba上沒辦法直接讀取C2/B5等儲存格的數值
本帖最後由 jiuhtsair 於 2019-2-19 19:43 編輯
這問題可能超級入門,才剛學習使用巨集/vba第二天..
但想請版上先進稍微提點一下,這樣問題要利用什麼關鍵字來搜尋才能找到相關解法
我打算利用vba來幫完成把某幾列給隱藏起來的工作,
首先利用錄製巨集功能,把2~137列給隱藏起來,得到下面程式碼
Sub hide()
'
' hide巨集
'
Rows("
2:137
").Select
Range("C137").Activate
Selection.EntireRow.Hidden = True
End Sub
接著我想要把隱藏的列從
2~137
改成
2~某a列
a列的數值我在表單裡面透過以下公式算出來了
a=MATCH(TODAY(),A2:A207,0)
頁面上也顯示算出來的值是137
然後打算把這個公式直接放進vba程式碼中,就出現bug了無法執行
Rows("
2:MATCH(TODAY(),A2:A207,0)
").Select
換一個方式,直接指定這個a值的所在位置V212套入公式中,也是一樣的狀況無法執行
Rows("
2:V212
").Select
請問在這種情況下,要如何讓vba讀取excel表單中的數值?
作者:
准提部林
時間:
2019-2-20 10:01
本帖最後由 准提部林 於 2019-2-20 10:03 編輯
V212為公式值:=MATCH(TODAY(),A2:A207,0)
Rows("2:" & range("V212") +1 ).Select
或
Rows("2:" & [V212] +1 ).Select
============================
V212為公式值:
=MATCH(TODAY(),A:A,0)
Rows("2:" & range("V212")).Select
或
Rows("2:" & [V212]).Select
作者:
准提部林
時間:
2019-2-20 10:05
不用儲存格公式
Dim Mh
Mh = Application.Match(CLng(Date), [A:A], 0)
If IsError(Mh) Then Exit Sub
Rows("2:" & Mh).Select
作者:
准提部林
時間:
2019-2-20 10:09
Sub Macro1()
Dim Mh
Cells.EntireRow.Hidden = False '取消隱藏行
Mh = Application.Match(CLng(Date), [A:A], 0) '取得當日日期位置
If IsError(Mh) Then Exit Sub '若找不到當日, 跳出
Rows("2:" & Mh).EntireRow.Hidden = True '隱藏行
End Sub
作者:
jiuhtsair
時間:
2019-2-20 20:10
回復
2#
准提部林
謝謝您提供上述的寫法,成功地執行了我想要的動作
我會再看看相關的章節學習
下方兩個不利用儲存格的運算也加入我的筆記中
未來學到這部分的時候可以再拿出來理解一次
太感謝了!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)