National Institute of Health and Nutrition has revised ‘METs table of Physical Activities’ 2011 edition. Because it’s difficult to use as PDF file, I have extracted text data from it. I have asked if I could publish the file on this blog on July 3rd, 2012.
1. Open the file and copy all text.
2. Create new EXCEL book and paste with ‘Text File Wizard’. In the second tab, you have to remove all check mark of delimiters. In the third tab, select ‘String’ data type of column.
3. Press ‘Alt’ key and ‘F11’ key to launch VBE, insert module, and run the following code.
Option Explicit Sub METS() Dim mySht As Worksheet Dim myRng As Range Dim myAr As Variant Dim i As Long Dim j As Long Dim myReg As Object Dim myMatches As Object Dim myMatch As Object Const strReg As String = "^[0-9]{5}$" Dim CODE() As String Dim METS() As Single Dim MajorHeading() As String Dim SpecificActivities() As String Dim myArray() As Variant Set myReg = CreateObject("VBScript.RegExp") With myReg .Pattern = strReg .IgnoreCase = True .Global = True End With Set mySht = ActiveSheet Set myRng = mySht.UsedRange myAr = myRng j = 0 For i = LBound(myAr) To UBound(myAr) If myReg.Test(myAr(i, 1)) Then Set myMatches = myReg.Execute(myAr(i, 1)) ReDim Preserve CODE(j) ReDim Preserve METS(j) ReDim Preserve MajorHeading(j) ReDim Preserve SpecificActivities(j) CODE(j) = myAr(i, 1) METS(j) = myAr(i + 1, 1) MajorHeading(j) = myAr(i + 2, 1) SpecificActivities(j) = myAr(i + 3, 1) j = j + 1 End If Next i ReDim myArray(j, 3) For j = LBound(myArray) To UBound(myArray) - 1 myArray(j, 0) = CODE(j) myArray(j, 1) = METS(j) myArray(j, 2) = MajorHeading(j) myArray(j, 3) = SpecificActivities(j) Next j Set mySht = Worksheets.Add mySht.Range("A1").Value = "CODE" mySht.Range("B1").Value = "METS" mySht.Range("C1").Value = "MajorHeading" mySht.Range("D1").Value = "SpecificActivities" mySht.Range("A2:D827") = myArray End Sub