[算表] 如何依日期選擇對應的儲存格

看板Office作者 (KID)時間14年前 (2009/09/17 23:03), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串1/1
軟體:Excel 版本:2003 我用 Excel寫了一個「每日品管表」 這個品管表共有20個sheets 每個sheet裡面有1~31日 分別C1~AG1各佔一格 我在第一個sheet裡面設計了兩個button, 希望按這第一個button, 其餘19個sheet裡面的游標(方框)都能自動跳到當日的第21列; 按第二個button, 所有sheet裡面的游標都能跳到當日的第32列。 我是用excel裡面的vba寫的, 寫法如下: Private Sub CommandButton1_Click() Dim mydate '宣告mydate Dim i, x As Integer '宣告i及x兩個變數 mydate = today '宣告mydate就是今天的日期(包含年月日) i = Day(mydate) 'i等於日期中的「日」 x = i - 11 'x等於i往左11格 Sheets("K").Select '選擇Sheet K Cells(21, x).Select '選擇Sheet K裡面的(21,x)這格 Sheets("Na").Select '選擇Sheet Na Cells(21, x).Select '選擇Sheet Na裡面的(21,x)這格 …… '20個Sheet依此類推 End Sub 其中我以黃色和綠色標示的地方是我不懂的: 黃色的部分, 我認為要寫成 x = i + 2, 因為我的1號是C開始,不是從A。 但是位子一直不對, 直到改成 x = i - 11 才會是我想要的位置。 為什麼會這樣? 綠色的部分, 我的程式執行到綠色的部分就會出現1004的錯誤警告, 我一直抓不出原因。 我有試過分別把 Sheets("K").Select Cells(21, x).Select 兩行的其中一行刪掉 都可以順利執行 但是放在一起就無法執行 另一個疑問是Cells的位置, x表示橫向(欄),y表示直向(列), 我一直以為(x,y)的方法才對, 但vba裡面似乎是(y,x)?? 不知道版上有沒有高手可以幫幫忙 >"< 在這邊先謝謝耐心看完的各位~ ---- 為了避免我的述敘和程式影響了大家的思考, 簡單說一下我的需求, 也許有其他更好的做法: 我需要20個sheet, 每個sheet的名稱因為需求分別取名(Na, K, Cl, Ca, Mg……) 橫欄分別是1~31日 直列則分別需要填入兩種數據(第21列及第32列) 例如今天是17日, 我想要先填20個sheet裡面17日的第21列, 填完之後再填20個sheet裡面17日的第32列。 我希望他游標可以自動在該填的位置等我, 而不需要一個一個去點。 請版上的高手幫幫忙吧Q_Q 我是非本科看書自學的~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.117.34.245

09/17 23:11, , 1F
該怎麼說呢= =" 我想了一個早上的問題…
09/17 23:11, 1F

09/17 23:12, , 2F
就在我po完 ptt以後就突然開竅了…
09/17 23:12, 2F

09/17 23:13, , 3F
只要把Cells(21, x).Select改成
09/17 23:13, 3F

09/17 23:15, , 4F
Sheets("K").Cells(21, x).Select 即可
09/17 23:15, 4F

09/17 23:15, , 5F
不過其他的疑問還是有待各位高手指點迷津 >"<
09/17 23:15, 5F

09/18 07:54, , 6F
today好像不是VBA的語法 改成Now試試 再把X-11改成X+2
09/18 07:54, 6F

09/18 20:20, , 7F
感謝~照您的方法果然變成x+2 ^^y
09/18 20:20, 7F

09/19 04:33, , 8F
^^
09/19 04:33, 8F
文章代碼(AID): #1Aia-aFx (Office)