[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オートフィルタ抽出後データ先頭セルの選択後にその選択セルを特定のセルに入力させるにはどの様に指示したら良いでしょう? 』(せり)
どうかご教示下さい
オートフィルタ抽出後データ先頭セルの選択後にその選択セルを特定のセルに入力させるにはどの様に指示したら良いでしょう? オートフィルタ抽出後データ先頭セルの選択は↓のものを入れています。(うまく走っていませんが…)
Range("A2:A" & 最終行 + 1).SpecialCells(xlCellTypeVisible).Areas(1).Cells(1).Select
Range("A65536").Select '必須項目のA列のシート最下行を選択
Selection.End(xlUp).Select '入力のあるセルまでジャンプ
最終行 = Selection.Row '選択セルの行数を取得
因みに、ある列の項目すべてでオートフィルタをしオートフィルタの表示順にプリントアウト出来る↓のVBAの★のところに入力しようと思います。
Sub test() 'この行から
Dim i, j As Long
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1") '←Sheet名は実際のSheet名に!
Set ws2 = Worksheets("sheet2")
ws2.Cells.Clear
For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Range(ws1.Cells(1, 1), ws1.Cells(i, 1)), ws1.Cells(i, 1)) = 1 Then
ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1) = ws1.Cells(i, 1)
★
End If
Next i
j = ws1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row
Range(ws1.Cells(1, 1), ws1.Cells(j, 4)).AutoFilter field:=1, Criteria1:=ws2.Cells(i, 1)
ws1.PrintOut
Next i
End Sub 'この行まで
< 使用 Excel:Excel2013、使用 OS:Windows7 >
>オートフィルタ抽出後データ先頭セルの選択後にその選択セルを特定のセルに入力させる
1)★の位置は、まだオートフィルタ実行前ですが? 2)特定セルとは?
(マナ) 2015/06/02(火) 23:46
特定のセルとは、すでにVLOOKUPが組んでるセルで そのセルに入力すると他のセルも反映します
(せり) 2015/06/02(火) 23:57
オートフィルタ抽出後データ先頭セルの選択で
一行目のタイトル行を飛ばしたい場合どうすればいいでしょう?
タイトル行をずっと選択してしまいます
(せり) 2015/06/03(水) 12:25
仮に、セルF1だとしたら、
Range(ws1.Cells(1, 1), ws1.Cells(j, 4)).AutoFilter field:=1, Criteria1:=ws2.Cells(i, 1) ws1.Cells(1,6)=ws2.Cells(i, 1) '★追加はこれだけ ws1.PrintOut
でできませんか?
(マナ) 2015/06/03(水) 20:45
実際に参照してほしいのはws1の2行目なので
ws1.Cells(1,6)=ws1.Cells(i, 2)
としているのですが、iでオートフィルタ毎になるはずなのですが出来ませんでした
(せり) 2015/06/04(木) 12:28
コードの元はこちらで公開されているものを参考にされているのかと想像します。 http://rmoon3.seesaa.net/category/19068932-1.html > 実際に参照してほしいのはws1の2行目なので > ws1.Cells(1,6)=ws1.Cells(i, 2) ws1.Cells(i, 2) が何を返しているのかは、確認されましたか? なんとなく 「2行目」を参照したいというのに変更後のコードは「2列目」を指定しているようですが、 ここに勘違いはありませんか? 勘違いがなく、フィルタ後の先頭行の2列目(隣の列?)の値を拾いたいとしている場合、 最初に示された下記コード > Range("A2:A" & 最終行 + 1).SpecialCells(xlCellTypeVisible).Areas(1).Cells(1).Select を活用し、Offsetで2列目を見るようにする事で対処できそうですが これの読み替えがうまく出来ていないとかそういう事ではなかろうかと想像してみます。 上記を踏まえ、参考になるであろう記述を示してみます。 Debug.Print Range(ws1.Cells(2, 1), ws1.Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible).Areas(1).Cells(1).Offset(, 1).Address この記述でもある条件の場合は期待するセル位置を返さないなどがある事までは確認していますが そこまでのフォローはしないので触って確かめてみてください。 (ご近所PG) 2015/06/04(木) 15:58
2列目のタイトルセルを除いた先頭セルを選択したかったのです
もっとスマートなプログラムでできそうな気がしてきました
Sheet2が要らないし
また詳しくアップしたいと思います
(せり) 2015/06/04(木) 19:20
A B C D E F
1
2 F2■←vlookup設定セル
3
4タイトル1 タイトル2 ・・・・
5 123 aaa
6 123 aaa
7 123 aaa
8 234 bbb
9 234 bbb
10 345 ccc
11 345 ccc
12 345 ccc
13 456 ddd
14 456 ddd
15 456 ddd
オートフィルタをしオートフィルタの表示順にプリントアウト出来るというのは一様出来ているように思えるのですが、やはりF2のセルにオートフィルタ抽出後B列の先頭セル選択後にその選択セルを入れるという部分が難しく
Sheet2にシート”2015.4月”のB列(タイトルも含む)をコピーしてそれをF2にへリンクさせようと組んでみました。そこでも、タイトルを含んで表示してしまい、困っています。
以下に今走らせているソースを書きますので、これに手直しをしていただけるとありがたいです。
お手数ですがお願いします。
Dim i,j,As Long
Dim ws1,ws2 As Worksheet
Set ws1 = Workseet("2015.4月分")
Set ws2 = Workseet("Sheet2")
ws2.Cells.Clear
For i = 2 To ws1.Cells(Rows.Count,1).End(xlUp).Row
If WorkshetFunction.CountIf(Range(ws1.Cells(5,1),ws1.Cells(i,1)),ws1.Cells(i,1)) = 1 Then
ws2.Cells(Rows.Count,1).End(xlUp).offset(1) = ws1.Cells(i,1)
ws2.Cells(Rows.Count,2).End(xlUp).offset(1) = ws1.Cells(i,2)
End If
Next i
j = ws1.Cells(Rows.Count,1).End(xlUp).Row
For i = 2 To ws2.Cells(Rows.Count,1).End(xlUp).Row
Range(ws1.Cells(5,1),ws1.Cells(j,2)).AutoFilter field:=1,Criterial:=ws2.Cells(i,1)
ws1.Cells(2,6) = ws2.Cells(i,2)
ws1.PrintOut
Next i
(せり) 2015/06/12(金) 01:29
よろしくお願いいたします。
(せり) 2015/06/12(金) 01:34
For i = 2 To ws1.Cells(Rows.Count,1).End(xlUp).Row を For i = 5 To ws1.Cells(Rows.Count,1).End(xlUp).Row
(マナ) 2015/06/12(金) 05:33
Sheet2のデータがタイトル行以下のものをコピーするようになっていました
大量にデータがあるので印刷して無いので
最終的に印刷してみて結果をみたいと思います
また不具合が出ましたら相談させてください
ありがとうございました
(せり) 2015/06/12(金) 12:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.