我試圖編寫一個小宏來搜索一個值的範圍(由一個充滿用戶輸入的數組提供),並且大多數情況下返回它們的當前行。這個範圍是一個可打印的工具表,我只需要打印我進行更改的頁面,因此我試圖通過輸入已更新的工具來簡化工作,並讓宏指示我打印哪些頁面。使用數組中的值來搜索範圍
我試圖儘可能地理解,但如果需要澄清,請告知我。
的問題出現了,當我嘗試搜索的表中使用「Application.WorksheetFunction」
Sub FunWithArrays()
Dim ToolNumber()
Dim i As Integer
i = 1
ReDim ToolNumber(1)
Do
ToolNumber(i) = InputBox("Please type the name of the tool with proper capitalization.", "Tool Number")
ReDim Preserve ToolNumber(UBound(ToolNumber) + 1)
i = i + 1
Loop Until ToolNumber(i - 1) = "Done"
MsgBox "Thank you for inputting the tool numbers.", vbOKOnly, "Input Complete"
Dim j As Integer
Dim ToolNoRow As Range
Dim PageNo As Double
For j = 1 To (i - 2)
ToolNoRow = Application.WorksheetFunction.Range("A:A").Text.Find(what:=ToolNumber(j), LookIn:=xlValues, lookat:=xlWhole)
PageNo = Application.WorksheetFunction.RoundUp((ToolNoRow/1), 0)
MsgBox "Please print page " & PageNo
Next
End Sub
任何和所有幫助表示讚賞!謝謝!
好後,國防部的邏輯,所以我設置「ToolNoRow」長和系後添加的.Row,而且工作。現在我如何在VBA中提高價值? 我所試圖做的是: >我想每個打印頁面上有 >取整(RowNo /每頁行數)46排工作表的行動應歸還頁數打印 >有這些頁碼顯示給用戶,或者至少以某種可用的形式顯示 – VBAnoob
在這種情況下,使用'RoundUp'函數的自己的解決方案應該工作得很好。只需除以46而不是1.即,將該行更改爲:'PageNo = Application.WorksheetFunction.RoundUp((ToolNoRow/46),0)' –
謝謝!它似乎運行平穩。現在添加更多功能! – VBAnoob