[算表] EXCEL VBA判斷條件

看板Office作者 (Bao)時間11年前 (2014/09/08 15:05), 編輯推噓0(0036)
留言36則, 2人參與, 最新討論串1/1
軟體:EXCEL 版本:2010 各位板友好,目前在修改EXCEL VBA程式時碰到一些問題,想請教一下: 以下為目前的程式 Dim Rng1 As Range Set Rng1 = Sheets("Sheet4").Range("A2:A20000").Find("", [A20000]) If Rng1 Is Nothing Then MsgBox "範圍資料已滿": Exit Sub Sheets("Sheet1").[B1].Copy Rng1 Dim Rng2 As Range Set Rng2 = Sheets("Sheet4").Range("B2:B20000").Find("", [B20000]) If Rng2 Is Nothing Then MsgBox "範圍資料已滿": Exit Sub Sheets("Sheet1").[B2].Copy Rng2 在Rng2的那段中發生了一些問題 Q1. 原本程式的意思為程式會從工作表4 B2~B20000的欄位中,判斷有空白處就貼上資料 但我想要將他更改成程式條件只看A2~A20000的欄位來判斷B行的哪一個欄位要貼上資料 舉例來說,假如現在程式偵測到工作表4中A2,A3,A4都有資料,那我在工作表1中的B2欄 位資料就會複製貼到工作表4中的B5欄位 Q2. 另外一個問題是,由於我在工作表1的B2欄位複製的資料是由VLOOKUP抓取的資料, 如此複製貼到工作表4中的欄位時,會變成#N/A,必須手動再點選將該欄位僅顯示為值 才能顯示出我於VLOOKUP中表現的值,想請教一下這邊有什麼方法可以解決嗎?我試過 PasteSpecial可是好像沒辦法成功 謝謝各位了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.81.68 ※ 文章網址: http://www.ptt.cc/bbs/Office/M.1410159920.A.B3F.html

09/08 15:45, , 1F
Q1的意思找二格A2:A2000空白儲存格複製B1和B2貼上嗎?
09/08 15:45, 1F

09/08 15:47, , 2F
Q2.pastespecial使用xlpastevalues貼上值
09/08 15:47, 2F

09/08 15:49, , 3F
Q1的意思還是指找到A2:A2000的空白儲存格(A5)時就將B1:B2
09/08 15:49, 3F

09/08 15:49, , 4F
貼到A5:B5上呢?
09/08 15:49, 4F

09/08 15:56, , 5F
大哥您好 我的意思是說 我在工作表1的B1欄位及B2欄位的資料
09/08 15:56, 5F

09/08 15:56, , 6F
要先複製,接著再分別貼上到工作表4中的A2欄位及B2欄位。B1
09/08 15:56, 6F

09/08 15:57, , 7F
欄位資料方面,假如A2欄位有資料,程式就會將B1資料貼到A3,
09/08 15:57, 7F

09/08 15:57, , 8F
如果A3還是有資料,B1資料就會貼到A4,依此類推;B2欄位資
09/08 15:57, 8F

09/08 15:57, , 9F
料方面也想要照B1那樣判定,假如A2欄位有資料,程式就會將B1
09/08 15:57, 9F

09/08 15:58, , 10F
資料貼到B3,如果A3還是有資料,資料就會貼到B4,依此類推,
09/08 15:58, 10F

09/08 15:58, , 11F
想要表達的意思主要是貼上資料這部分都想要以A行是否有資料
09/08 15:58, 11F

09/08 15:58, , 12F
來進行判定
09/08 15:58, 12F

09/08 15:59, , 13F
抱歉推文第五行打錯了 應該室 假如A2欄位有資料,程式就會將
09/08 15:59, 13F

09/08 16:00, , 14F
B2資料貼到工作表4中的B3欄位
09/08 16:00, 14F

09/08 16:01, , 15F
Q1應該是第二個意思
09/08 16:01, 15F

09/08 16:13, , 16F
09/08 16:13, 16F

09/08 16:23, , 17F
SO大太感謝了
09/08 16:23, 17F

09/08 16:31, , 18F
可以方便請教Rng.PasteSpecial 12, Transpose:=True意思嗎?
09/08 16:31, 18F

09/08 16:38, , 19F
12=xlpastevalues(貼上值),transpose為轉置的意思
09/08 16:38, 19F

09/08 16:42, , 20F
那請問如果我要將B1 B2 以及 E2 F2 G2 H2的資料依照
09/08 16:42, 20F

09/08 16:43, , 21F
工作表4內A2 B2 C2 D2 E2 F2來貼上要如何做呢?因為A2 B2是直
09/08 16:43, 21F

09/08 16:44, , 22F
行資料;而E2 F2 G2 H2是橫排資料
09/08 16:44, 22F

09/08 16:45, , 23F
貼上時由於轉置存在的關係似乎會怪怪的@@
09/08 16:45, 23F

09/08 17:28, , 24F
目前有一個想法是說 由於我只有工作表1內只有B1、B2是直排資
09/08 17:28, 24F

09/08 17:29, , 25F
料,那我在複製貼上資料表1中E2 F2 G2 H2的資料不知道可否從
09/08 17:29, 25F

09/08 17:29, , 26F
C2開始貼上呢?
09/08 17:29, 26F

09/08 17:30, , 27F
另外補充一下資料表1中完整的資料為B1 B2(直排資料)而E2 F2
09/08 17:30, 27F

09/08 17:31, , 28F
G2 H2 E3 F3 G3 H3(橫排資料,分兩列)
09/08 17:31, 28F

09/08 17:32, , 29F
想要從工作表4內A2 B2 C2 D2 E2 F2 G2 H2 I2 J2來貼上
09/08 17:32, 29F

09/08 18:00, , 30F
09/08 18:00, 30F

09/08 18:01, , 31F
說錯了 另外工作表1的資料還有E9 F9 G9 H9 想要貼在工作表4
09/08 18:01, 31F

09/08 18:02, , 32F
內的K2 L2 M2 N2內
09/08 18:02, 32F

09/08 18:02, , 33F
謝謝S大 我這就試試看
09/08 18:02, 33F

09/08 18:05, , 34F
這樣的話我應該還要再加上[E9:H9].Copy Rng.End(2)(, 2)
09/08 18:05, 34F

09/08 18:07, , 35F
http://goo.gl/EaKBr4 再重下試試
09/08 18:07, 35F

09/08 18:09, , 36F
可以了...S大感恩
09/08 18:09, 36F
文章代碼(AID): #1K3LKmi_ (Office)