私はサブ間で値を前後に渡す方法を学ぼうとしています。私は最終的にそれらの間で同じコード行を何度も何度も繰り返し使用するいくつかのマクロサブを作成しました。開始するには、列と行の数を調べたりカウントしたりできます。これは私が今まで持っているものですが、うまくいきません。VBA間のパス値
私はまた、列から行へと広げたいと思っています。
Public Sub main()
Dim lCols As Integer
Dim lRows As Integer
lCols = countCols(Sheet1)
Sheet1.Range("M2").Value = lCols
End Sub
Public Function countCols(sheetValue As Worksheet) As Variant
countCols = sheetValue.Cells(Rows.Count, 1).End(x1Up).Row
Exit Function
End Function
今、それは関数内でハングアップ...それはsheetValueに「シート1」を渡していないようです。
次 'x1Up'は' xlUp'小文字の 'L'ではない '1'でなければなりません。 –
この前にこの質問に回答しました。このリンクをご覧ください: https://stackoverflow.com/questions/17998773/set-a-variable-in-one-sub-and-use-in-another/17999208# 17999208 –
Scottさんのコメントで問題が解決されない場合は、「ハングする」という意味の詳細について質問を更新してください。 ( 'xlUp'の代わりに' x1Up'を使用すると、通常、アプリケーション定義のエラーやオブジェクト定義のエラーでコードがクラッシュするか、正しくない値を返すだけです)。 – YowE3K