- 締切済み
webクエリで取得した表の処理について
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
何の面白味もないないような課題だな。項目の組み換えだけだ。 Sub test07() k = 2 'Sheet2のデータの最初行 '--シートの定義 sh1 = Worksheets("Sheet1") ’(原データ・)インプットシート WEBクエリ結果 sh2 = Worksheets("Sheet2") ’アウトプットシート For i = 11 To 最終行 Step 3 sh2.Cells(k, "A") = sh1.Cells(i, "A") sh2.Cells(k, "B") = sh1.Cells(i, "B") '・以下同様 略 '・ k = k + 1 '次の行に書き出す用意 Next i End Sub ’--- Sheet1の最終行番号はいくつ、や1つの順位で3行おき(Step 3に影響)データらしいが、正しいかどうか私は確かめる気がないが、確認して。 データの代入(引っ張ってくるデータ)は、i行からの項目と、i+1行からの項目の2種がある(2行上下構成の)ようだが、上記で省略した部分の、代入式の右辺で、Cells(,)の行指定部分(カンマの左の引数)が、iかi+1か注意すれば仕舞。 '--- #1のご回答に対し、エラーが出ました、としか言えてないレベルのようだが、上記回答に、疑問点あれば、打ち切って無視してください。
- HohoPapa
- ベストアンサー率65% (455/693)
>getMyDay = Left(strdate, MyPos - 1) >の部分で止まってしまいます MyPos = InStr(1, strdate, "(") '半角「(」ではなく全角「(」かも これを MyPos = InStr(1, strdate, "(") '半角「(」ではなく全角「(」かも に書き換ええてみてください。
- HohoPapa
- ベストアンサー率65% (455/693)
1.webクエリで表を取得 2.加工 3.別シートに複写 という処理ではなく 1.webクエリで表を取得 2.別シートに個々のセルを複写しながら加工 とした方が楽と思います。 処理後のシートの7行目までは説明がないので あてずっぽうです。 Option Explicit Sub Sample() Dim RowCnt As Long Dim GetSh As Worksheet Dim PutSh As Worksheet Dim PutRow As Long Set GetSh = ThisWorkbook.Sheets(1) Set PutSh = ThisWorkbook.Sheets(2) GetSh.Rows(1).Copy PutSh.Rows(1) GetSh.Rows(2).Copy PutSh.Rows(2) GetSh.Rows(3).Copy PutSh.Rows(3) GetSh.Rows(4).Copy PutSh.Rows(4) GetSh.Rows(5).Copy PutSh.Rows(5) PutSh.Cells(4, 3).Value = PutSh.Cells(5, 2).Value GetSh.Rows(6).Copy PutSh.Rows(5) GetSh.Rows(8).Copy PutSh.Rows(6) GetSh.Rows(9).Copy PutSh.Rows(7) RowCnt = 11 PutRow = 7 Do If GetSh.Cells(RowCnt, 1).Value = "" Then Exit Do PutRow = PutRow + 1 PutSh.Cells(PutRow, 1).Value = GetSh.Cells(RowCnt, 1).Value PutSh.Cells(PutRow, 2).Value = GetSh.Cells(RowCnt, 2).Value PutSh.Cells(PutRow, 3).Value = GetSh.Cells(RowCnt, 3).Value PutSh.Cells(PutRow, 4).Value = GetSh.Cells(RowCnt, 5).Value PutSh.Cells(PutRow, 5).Value = GetSh.Cells(RowCnt, 6).Value PutSh.Cells(PutRow, 6).Value = GetSh.Cells(RowCnt + 1, 6).Value PutSh.Cells(PutRow, 7).Value = getMyDay(GetSh.Cells(4, 2).Value) PutSh.Cells(PutRow, 8).Value = GetSh.Cells(5, 2).Value RowCnt = RowCnt + 3 Loop End Sub Function getMyDay(strdate As String) As String Dim MyPos As Long MyPos = InStr(1, strdate, "(") '半角「(」ではなく全角「(」かも getMyDay = Left(strdate, MyPos - 1) End Function
補足
getMyDay = Left(strdate, MyPos - 1) の部分で止まってしまいます