返回列表 上一主題 發帖

[發問] 請問以下程式為何不能執行

[發問] 請問以下程式為何不能執行

請教大大們幫忙解惑,
    小弟寫一個程式要將data sheet 的局部資料貼到sheet1 結果顯示錯誤
Sub Macrol()
       Dim i As Integer
       i=sheets("data").Cells(1,2)-sheets("sheet1").Cells(1,2)
       If i=1 Then
        Call 抓資料(7)
End Sub
Sub 抓資料(k)
Dim J,K As Integer
For j=1 to21
sheets("sheet1").range (Cells(j+1,k),(cells(j+1,k+2)=sheets("data").range (Cells(j+1,2),(cells(j+1,4)).......電腦顯示這句是錯的
next
End Sub
不知要如何改才能使用
DREWCHEN1

不好意思我也是剛入門的
這個程式要作用你要確認你的資料是在data
或者你已經要用這個程式抓別的分頁的資料
那就是要把sheets("data")內的data改成最終分頁

i=sheets("data").Cells(1,2)-sheets("sheet1").Cells(1,2)
sheets("sheet1").range (Cells(j+1,k),(cells(j+1,k+2)=sheets("data").range (Cells(j+1,2),(cells(j+1,4))
這兩行都要改...怎麼改要看你的需求吧...
基本的做法就是人工改資料頁的名稱
進階 就是可以看是自動抓第一個分頁當資料頁 或者其他方式...這點我就不懂了
50 字節以內
不支持自定義 Discuz! 代碼

TOP

sheets("sheet1").range (sheets("sheet1").Cells(j+1,k),sheets("sheet1").(cells(j+1,k+2))
學海無涯_不恥下問

TOP

回復 1# drewchen1
  1. Sub 抓資料(K)
  2. Dim J, K As Integer
  3. If K <= 0 Then
  4.     MsgBox "K須大於0"
  5.     Exit Sub
  6. End If
  7. For J = 1 To 21
  8.     Sheets("sheet1").Cells(J + 1, K).Resize(, 3) = Sheets("data").Cells(J + 1, 2).Resize(, 3).Value
  9. Next
  10. End Sub
複製代碼

TOP

謝謝各位大大回覆,Sub 抓資料(k) 是一種副程式用法,所以這程式只在以下這句語法問題
sheets("sheet1").range (Cells(j+1,k),(cells(j+1,k+2)=sheets("data").range (Cells(j+1,2),(cells(j+1,4)).......電腦顯示這句是錯的
經使用hsieh板主方式,程式執行不會錯誤但資料確無移過去sheet1 ,不知差在哪我改成
sheets("sheet1").range (sheets("sheet1").Cells(j+1,k),sheets("sheet1").(cells(j+1,k+2))=sheets("data").range (sheets("data").Cells(j+1,2),sheets("data").(cells(j+1,4))
結果是資料欄空白
gbkee板主使用resize方式因我照著打顯示語法錯誤,我對resize用法不懂,所以不知怎問起不過還是謝謝各位幫忙
^^
DREWCHEN1

TOP

sheets("sheet1").range (sheets("sheet1").Cells(j+1,k),sheets("sheet1").cells(j+1,k+2))=sheets("data").range (sheets("data").Cells(j+1,2),sheets("data").cells(j+1,4)).value
學海無涯_不恥下問

TOP

謝謝Hsieh 板主,原來少個value這程式已經可以用了
謝謝你
^^
DREWCHEN1

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題