返回列表 上一主題 發帖

[發問] 文字檔開啟

[發問] 文字檔開啟

請問我想要用巨集開啟多個文字檔
檔案名稱為 y(i)-->y(1),y(2),y(3),...
那下碼怎麼修改

Sub 開啟檔案()
Dim name, i, x, oldname
oldname = ThisWorkbook.Name
Range("A1").Select
x = InputBox("數量")

For i = 1 To x
  name = i & ".txt"


感謝!

回復 13# koplkjnm

檔名是字串型態
txt_name = "s (" & i & ").txt"
學海無涯_不恥下問

TOP

回復 12# GBKEE
如附件
麻煩你了 謝謝

123.rar (12.34 KB)

TOP

回復 11# koplkjnm
附檔看看
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# GBKEE
程式試了之後會出現型態不符合的警告

TOP

回復 9# koplkjnm
如果我將它改成像藍字的部分可以嗎?
程式試了有問題嗎?
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# GBKEE
GBKEE大 你好
下面紅字的地方應該沒有錯
可是這樣的話感覺上它還是會搜尋檔案名為1.txt, 2.txt,...作開啟的動作
沒辦法開啟檔案名為y(1), y(2),...
如果我將它改成像藍字的部分可以嗎?
或者是哪裡要再補充或修改的

麻煩你了 感謝

Option Explicit
Sub 文字檔案()
Dim txt_name, i, x, oldname
Dim y As  Variant
oldname = ThisWorkbook.Name
Range("A1").Select
x = InputBox("檔案數量")
For i = 1 To x
  txt_name = i & ".txt" '<--改成   txt_name =y( i) & ".txt"

    Workbooks.OpenText Filename:=ThisWorkbook.Path & "\" & txt_name, Origin:=950 _
        , StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
        Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
        Array(10, 1)), TrailingMinusNumbers:=True
        Windows(txt_name).Activate

       Range("A" & i).Select
        '當=1 為  Range("A1").Select
        '當=2 為  Range("A2").Select   是這樣嗎? ..............

        
    Next
End Sub

TOP

回復 7# koplkjnm
  1. Option Explicit
  2. Sub 文字檔案()
  3. Dim txt_name, i, x, oldname
  4. oldname = ThisWorkbook.Name
  5. Range("A1").Select
  6. x = InputBox("檔案數量")
  7. For i = 1 To x
  8.   txt_name = i & ".txt"
  9.     Workbooks.OpenText Filename:=ThisWorkbook.Path & "\" & txt_name, Origin:=950 _
  10.         , StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
  11.         ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
  12.         , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
  13.         Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
  14.         Array(10, 1)), TrailingMinusNumbers:=True
  15.         Windows(txt_name).Activate
  16.         '******這段程式註解掉(不用了)
  17.         'If i = 1 Then
  18.         'Range("A1").Select
  19.         'Else
  20.         ' Range("A2").Select
  21.         'End If
  22.         '***********************
  23.         Range("A" & i).Select
  24.         '當=1 為  Range("A1").Select
  25.         '當=2 為  Range("A2").Select   是這樣嗎? ..............
  26.         
  27.     Next
  28. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# GBKEE

GBKEE大 抱歉可能我的理解較差
除了修改紅字的地方,其他不需修改嗎?
Range("A" & i).Select  這地方不太清楚意思?
麻煩你了 謝謝

Sub Ex()
    Dim A As Variant, i As Integer, x As Integer
    x = InputBox("檔案數量")
    For i = 1 To x
        Range("A" & i).Select
        '************************
        'If I = 1 Then
            'Range("A1").Select
        'Else
            'Range("A2").Select
        'End If
        '*****************************
    Next
End Sub '

TOP

回復 5# koplkjnm
配合 1# 檔案名稱為 y(i)-->y(1),y(2),y(3),...   這為陣列
如 y = Array("abc", "acc", "qqq", "aaa", "ccc")
y(1)="abc"
y(2)="acc"
y(3)="qqq"

4# 可改
  1. Sub Ex()
  2.     Dim A As Variant, i As Integer, x As Integer
  3.     x = InputBox("檔案數量")
  4.     For i = 1 To x
  5.         Range("A" & i).Select
  6.         '************************
  7.         'If I = 1 Then
  8.             'Range("A1").Select
  9.         'Else
  10.             'Range("A2").Select
  11.         'End If
  12.         '*****************************
  13.     Next
  14. End Sub '
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題