advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 48828 for A�����������������������... (0.009 sec.)
[[20170129013423]]
#score: 1420
@digest: 2e7142c3a81a7e2c2ab1d5d388578f7d
@id: 72530
@mdate: 2017-01-29T23:37:43Z
@size: 6658
@type: text/plain
#keywords: 論終 (23246), 卒論 (17974), 累積 (6500), union (6086), をun (4552), cells (4290), ペイ (3523), ー先 (3001), 元シ (2941), ー元 (2653), 行毎 (2573), マリ (2494), ル領 (2396), ーペ (2243), 領域 (2094), リオ (2004), ・行 (1940), 行分 (1872), プボ (1612), ピー (1544), ィエ (1517), ミデ (1512), コピ (1498), 2017 (1454), 行全 (1390), エイ (1350), 制限 (1338), address (1265), sh1 (1218), 日) (1198), トウ (1125), イミ (851)
『変数のコピーがわかりません』(卒論終わらんorz)
マクロを勉強しだして1時間のど素人です。 1082行から2164行目まで8個飛ばしで行全体をコピーしたくて下のように組んでみたのですが全然わかりません助けてください。 Sub () Dim i As Integer For i = 1082 To 2164 Step 8 Sheets("Sheet3").Rows(i).Copy Next i End Sub < 使用 Excel:Excel2013、使用 OS:Windows10 > ---- コピーしたものを、どこにペーストしたいのでしょうか? (β) 2017/01/29(日) 07:18 ---- すでにポイントをついた指摘をいただいています。 一行毎のコピーがクリップボードに累積することを期待しているのでしょうか。 まとめてペイストすれば良いと。 しかし、コピーが勝手に累積していったら、 昔のものとつながって、普通は困りますよ。 こちらの都合を、Excel君が判断してくれるわけもないです。 ・行をUnionで累積していって、その結果を一回コピーペイストするか、 ・行毎にコピーペイストを繰り返すか、 いずれかでしょう。 後者のほうが簡単でしょうか。 (γ) 2017/01/29(日) 08:32 ---- エクセルのシート間でのコピー、ペーストだと仮定すると、 Sheet3がコピー元、Sheet4がコピー先ってことで、いいですかね? たかだか、135行ぐらいなら、行毎にコピーペイストを繰り返すのが、 簡単でいいでしょう。 5000行以上あったら、作業列を用いて、 【並べ替え】または、【フィルター】処理した後に、 コピーして、元に戻すって方法かな…? >γさん >行をUnionで累積 20行分ぐらいしか、Unionで一度に処理できなかったような? それとも、コピー先が、エクセルじゃなくて、メモ帳とか、違うアプリ ですかね? γさんがおっしゃるように、コピー先は考えないで、 クリップボードにコピーするだけですかね? それと、行全体ってありますけど。列は決まってないんですかね。 本当に? A〜Z列までで十分だったりしませんか? (マリオ) 2017/01/29(日) 10:02 ---- >>20行分ぐらいしか、Unionで一度に処理できなかったような? えっ? そんなことはないですよ。 以下の例は、1000個ほどしか結合していませんが、実際はもっともっと可能です。 (アドレス文字列は制限がありますが) Sub Test() Dim r As Range Dim i As Long For i = 1 To 2000 Step 2 If r Is Nothing Then Set r = Cells(i, "A") Else Set r = Union(r, Cells(i, "A")) End If Next MsgBox r.Address & vbLf & r.Count r.Select End Sub (β) 2017/01/29(日) 10:24 ---- ↑ アップしたコードは単一セルのUNION ですが、行領域にしても同じです。 (β) 2017/01/29(日) 10:56 ---- > >γさん > >行をUnionで累積 > 20行分ぐらいしか、Unionで一度に処理できなかったような? すでにご指摘いただいたように、 繰り返しを使うので、ふたつの領域をUnionするだけです。 (γ) 2017/01/29(日) 14:40 ---- 遅くなりました。 無事解決できました。 助かりました。 (卒論終わらんorz) 2017/01/30(月) 00:01 ---- >γさん、βさん >繰り返しを使うので、ふたつの領域をUnionするだけです。 Set r = Union(r, Cells(i, "A")) とすれば、いいのか〜 繰返して、Setし直すんですね。Unionする領域は2つだけですね。 余談ですが…、一度にUnionできるセル領域は★30個までですね。下記の例だと、test1はNG1で、test2はOK ★セル領域の30個制限は、マクロじゃなくて、関数でも、いくつかありますね。SUM関数とか Sub test1() Dim r As Range Set r = Union(Cells(1, "A"), Cells(2, "A"), Cells(3, "A"), Cells(4, "A"), Cells(5, "A"), _ Cells(6, "A"), Cells(7, "A"), Cells(8, "A"), Cells(9, "A"), Cells(10, "A"), _ Cells(11, "A"), Cells(12, "A"), Cells(13, "A"), Cells(14, "A"), Cells(15, "A"), _ Cells(16, "A"), Cells(17, "A"), Cells(18, "A"), Cells(19, "A"), Cells(20, "A"), _ Cells(21, "A"), Cells(22, "A"), Cells(23, "A"), Cells(24, "A"), Cells(25, "A"), _ Cells(26, "A"), Cells(27, "A"), Cells(28, "A"), Cells(29, "A"), Cells(30, "A"), _ Cells(31, "A")) MsgBox r.Address End Sub Sub test2() Dim r As Range Set r = Union(Cells(1, "A"), Cells(2, "A"), Cells(3, "A"), Cells(4, "A"), Cells(5, "A"), _ Cells(6, "A"), Cells(7, "A"), Cells(8, "A"), Cells(9, "A"), Cells(10, "A"), _ Cells(11, "A"), Cells(12, "A"), Cells(13, "A"), Cells(14, "A"), Cells(15, "A"), _ Cells(16, "A"), Cells(17, "A"), Cells(18, "A"), Cells(19, "A"), Cells(20, "A"), _ Cells(21, "A"), Cells(22, "A"), Cells(23, "A"), Cells(24, "A"), Cells(25, "A"), _ Cells(26, "A"), Cells(27, "A"), Cells(28, "A"), Cells(29, "A"), Cells(30, "A")) MsgBox r.Address End Sub (マリオ) 2017/01/30(月) 04:18 ---- βさんのTestコード【(β) 2017/01/29(日) 10:24】で、 Debug.Print r.Address & vbLf & r.Count してみたら、イミディエイトウィンドウには次のように記述されました。 ***************************************************************** $A$1,$A$3,$A$5,$A$7,$A$9,$A$11,$A$13,$A$15,$A$17,$A$19,$A$21,$A$23,$A$25,$A$27,$A$29,$A$31,$A$33,$A$35,$A$37,$A$39,$A$41,$A$43,$A$45,$A$47,$A$49,$A$51,$A$53,$A$55,$A$57,$A$59,$A$61,$A$63,$A$65,$A$67,$A$69,$A$71,$A$73,$A$75,$A$77,$A$79,$A$81,$A$83,$A$85 1000 ***************************************************************** r.Addressの文字列で記録できるのは、43個までみたいです。 $A$1〜$A$85は、$A$1〜$A$86で【86】あると仮定すると、 86÷2=43(奇数のものだけは、半分の43) ★ただ、文字列としては、43個でも、実際には rには、1000個のセル範囲が記録されているみたいですね。 卒論終わらんorzさんの要望に応えると、次のようなコードでしょうか。 ***************************************************************** Sub Test3() Dim r As Range Dim i As Long Dim sh1 As Worksheet, sh2 As Worksheet Set sh1 = ThisWorkbook.Sheets("Sheet3") '★コピー元シート Set sh2 = ThisWorkbook.Sheets("Sheet4") '★コピー先シート Dim sc As Integer Dim fc As Integer sc = 1 '★コピー元シートの開始列 fc = Columns.Count '★コピー元シートの最終列 For i = 1082 To 2164 Step 8'★コピー元シートの開始行と最終行(※8行飛ばし) If r Is Nothing Then Set r = sh1.Range(sh1.Cells(i, sc), sh1.Cells(i, fc)) Else Set r = Union(r, sh1.Range(sh1.Cells(i, sc), sh1.Cells(i, fc))) End If Next Debug.Print r.Address & vbLf & r.Count 'イミディエイトウィンドウで確認 r.Copy 'コピーして sh2.Range("A1").PasteSpecial '★コピー先のシートに貼付け(A1を基準セルにして)書式も '★値だけならコチラ 'Sheets("Sheet4").Range("A1").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'コピーモードを解除 End Sub (マリオ) 2017/01/30(月) 04:18 ---- 追加情報。 アドレス文字列には256文字の制限あり。たぶん。 ただし、Rangeオブジェクトそのものが、 それに制約される訳でもありません。 (γ) 2017/01/30(月) 08:37 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201701/20170129013423.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97012 documents and 608132 words.

訪問者:カウンタValid HTML 4.01 Transitional