VBA、

2017-07-21 12 views
0

を働いていない私は、Excelが不規則VBA、

ID、名前、ランク、場所
0、マイケル、#3、
1と同様に入力されたデータを含むファイル持って、ジェシー、#4、NY
2、ブルターニュ、#7、FL
3、ケン、#2、CA、NY
4、ベス、#1、CA

は、これらが全てに入力されていることを想定各セル(コンマ区切り)。ここで問題となるのは、Locationでは一部の行にデータがまったくなく、複数のデータに複数のデータが含まれていて、複数のデータがある場合は右側に余分なセルが使用されることです。

私がしようとしていることは、シートで使用されている最大列のアルファベットアドレスを取得します。上記の例では、ID:3のデータに5つのデータが入力されているため、「E」になります。実際のプログラムでは、どの列が最も多くの列を使用しているかわかりません。
シートで使用されている最大の列を最初にチェックし、値を使用してアルファベットアドレスを取得しようとしましたが、3行目にエラー "エラー1004"が表示されました。アプリケーション定義またはオブジェクト定義エラー "そして私はこれで何が間違っていることを確認していない。

Dim maxColNum As String, buffer As String 
maxColNum = ActiveSheet.UsedRange.Columns.Count 'get the max column number 
buffer = Cells(1, maxColNum).Address(True, False) 'get the address 
buffer = Left(buffer, InStr(buffer, "$") - 1) 'remove row number from it 
MsgBox buffer 'show it in messagebox 

誰かがあなたをありがとう!これで間違っているものを私に伝えることができます。

答えて

0

maxColNumLongないStringでなければなりません。それは文字列ではなく文字列を指定できます列の文字でなければならず、数字のような文字列ではありません。

.Columns.CountはLongを返します。

Dim maxColNum As Long, buffer As String 
maxColNum = ActiveSheet.UsedRange.Columns.Count 'get the max column number 
buffer = ActiveSheet.Cells(1, maxColNum).Address(True, False) 'get the address 
buffer = Left(buffer, InStr(buffer, "$") - 1) 'remove row number from it 
MsgBox buffer 'show it in messagebox 
+0

私はそれらを切り替えましたが、私はまだ同じエラーが発生しています。 –

+0

@MikaJones編集を参照してください。 –

+0

ありがとう!それは基本的な問題で、しばらくそれを理解することができませんでした...私はそれを感謝します!あなたが私の最初の仮定で間違っていたことがわかるように、それは今、素晴らしい仕事をしています。 –