2016-12-30 5 views
0

シート「Empl CP」から、E、F、G列のデータを結合するコードを記述しようとしています(従業員の氏名、 )、その結合されたフィールドをシート "Empl QC"に書き込む。 First、Last、Middleの間の名前はスペースでなければなりません。Do WhileループVBAコードでの参照と空白を連結します。

このコードは、シート "Empl CP"(これにDo Whileループが使用されています)の各従業員に対して繰り返す必要があります。 「くし」のパラメータを作成するときに、まず、最終ネームとミドルネームの間にスペースがない、

上記のコードで
Sub CreateEmployees() 

Dim counter As Integer 
Dim cellCount As Integer 

Dim Comb As String 

Sheets("Empl CP").Activate 

cellCount = Application.WorksheetFunction.CountA(Range("A2:A20000")) 'cell count counts number of Employee IDs 
counter = 2 'Counter set on 2 to skip first header row of data 


Do While counter <= (cellCount + 1) ' +1 because counter begins with 2 (ends 1 before cellCount) 

Sheets("Empl CP").Activate 

Comb = "='Empl CP'!E" & counter & "&'Empl CP'!F" & counter & "&'Empl CP'!G" & counter 'COMB filed containing Empl first, last and mid name 

Sheets("Empl QC").Activate 

Worksheets("Empl QC").Range("A" & counter) = Comb 

counter = counter + 1 

Loop 

End Sub 

(これまでのコードが働いている。このために使用して

コードイムは以下の通りです正しく)。 "" "" &と入力してスペースを追加しようとすると(「Comb =」行のカウンターの後に)、文を終了するように要求するエラーが発生します。私が" "" "" " &を使用する場合、アプリケーション実行時エラー1004(アプリケーション定義またはオブジェクト定義エラー)が発生します。

この問題をお手伝いできますか?

+0

質問を編集したり、追加スペースを含む行にコメントを投稿してください。 'Comb =" = 'Empl CP'!E "&カウンター&"&Empl CP '!F "&カウンター&"&' Empl CP '!G "&counter' – Nulled

答えて

0

次のようにComb式を記述する必要があります:

Comb = "='Empl CP'!E" & counter & "&"" "" & 'Empl CP'!F" & counter & "&"" "" & 'Empl CP'!G" & counter 

が、あなたはより良いActivateを回避し、完全修飾された範囲の参照

Join()機能でいいと思うが役に立つことができ、ここで

として以下:

Option Explicit 

Sub CreateEmployees() 
    Dim iDatum As Long 

    With Sheets("Empl CP") 
     With .Range("A2", .Cells(.Rows.count, 1).End(xlUp)) 
      ReDim data(1 To .count) As String 
      For iDatum = 1 To .count 
       data(iDatum) = Join(Application.Transpose(Application.Transpose(.Offset(iDatum - 1, 4).Resize(1, 3).Value))) 
      Next 
     End With 
     Worksheets("Empl QC").Range("A2").Resize(UBound(data)).Value = Application.Transpose(data) 
    End With 
End Sub 
+0

ありがとう、問題。私はそれを感謝します:) – Ivica

+0

あなたは大歓迎です。良いコーディング! – user3598756

関連する問題