2016-11-12 14 views
0

私は、昼と時間と学年を取ることができるクラスからなるタイムテーブルを持っています。以下の例:enter image description hereタイムテーブルのデータを抽出する

私がやりたいことは、学年、学期、クラスID、クラス名、先生、クラスルームのデータを抽出して、日と期間も含めます。抽出したデータを使用して新しいテーブルを作成します。以下の例:enter image description here

これは、式またはVBAを使用してこれを行うより簡単で簡単な方法があるかどうか尋ねたいと思っていました。今、私がやっていることは、コピーして貼り付けることですが、非常に多くのデータがあります。 (月曜日から金曜日、第1期間から第6期間まで)

答えて

0

はい、それはVBA経由で可能ですが、シートの構造がそのスクリーンショットに完全には表示されません。「第1期間」が終了し、始まる。

Time以外の残りのデータについては、次の関数が必要な処理を行います。 Sheet1という名前のシートから、Sheet2という名前のシートにデータを抽出します。

Sub extractData() 

    ' Keep track of day name 
    DayName = "" 

    ' Loop variable 
    Dim i As Integer 
    i = 0 

    loopVar = True 

    While (loopVar) 

     ' Get the Class ID 
     ClassID = Sheets("Sheet1").Range("D" & i).Value 

     ' Check if this is an empty row 
     If (ClassID <> "") Then 

      ' Get the semester name 
      Sem = Sheets("Sheet1").Range("C" & i).Value 

      ' Get the Class Name 
      ClassName = Sheets("Sheet1").Range("E" & i).Value 

      ' Get the Teacher Name 
      TeacherName = Sheets("Sheet1").Range("F" & i).Value 

      ' Get the Class Room 
      ClassRoom = Sheets("Sheet1").Range("G" & i).Value 

      ' Get the day name 
      Temp = Sheets("Sheet1").Range("A" & i).Value 
      If Temp <> "" Then DayName = Temp 

      j = i - 2 

      ' Set the Class ID 
      Sheets("Sheet2").Range("A" & j).Value = ClassID 

      ' Set the Class Name 
      Sheets("Sheet2").Range("B" & j).Value = ClassName 

      ' Set the Teacher 
      Sheets("Sheet2").Range("C" & j).Value = TeacherName 

      ' Set the Class Room 
      Sheets("Sheet2").Range("D" & j).Value = ClassRoom 

      ' Set the semester 
      Sheets("Sheet2").Range("E" & j).Value = Sem 

      ' Set the Day Name 
      Sheets("Sheet2").Range("F" & j).Value = DayName 

      ' Incrementl the loop variable 
      i = i + 1 

     Else 

      ' End the loop 
      loopVar = False 

     End If 

    Wend 

End Sub 
+0

回答ありがとうございます。ところで、第2期は列 "Class Room"の後に始まります。基本的には第1学期(学期から学期まで)のコピーです。 – syn3rgy

+0

はい、部分的に機能しますが、部分的に機能します。私がそれを走らせたとき、それは主題「英語I」の表を作っただけでした。残りは見つからない – syn3rgy

+0

@ syn3rgy:コードを更新しました。マージされた行のため、クラスID列の項目数が正しく計算されませんでした。それが今働くかどうか私に教えてください。 (あなたのExcelファイルへのリンクを投稿できるのであれば、そのコードをテストするのが最善です) – NavkarJ