作者aup65797 (有缘人)
看板Office
标题[问题] VBA 超过65535放到Sheet2
时间Wed Feb 15 20:23:42 2017
(若是和其他不同软体互动之问题 请记得一并填写)
软体:Excel
版本:Office 2010
如何改写为当读取超过65535时 , 写到Sheet2 , 3 , 4.............
以下是程式码
Sheets("Sheet1").Select
'-----------------------------------------------------
Application.ScreenUpdating = False
Do
If xChk = 0 Then
xFile = Dir(ThisWorkbook.Path & "\*.csv")
If xFile = "" Then MsgBox "※找不到 CSV 档案! ", 0 + 16: Exit Sub
xChk = 1
Else
xFile = Dir
If xFile = "" Then Exit Do
End If
'----------------------------------------------
uFile = ThisWorkbook.Path & "\" & xFile
Set uHead = Range("A65536").End(xlUp)
uHead.Value = xFile
Set uHead = uHead(2, 1)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & uFile, Destination:=uHead)
.AdjustColumnWidth = False
.TextFileOtherDelimiter = ":" '冒号
.TextFileCommaDelimiter = True '逗号
.Refresh BackgroundQuery:=False
.Delete
End With
uHead.Interior.ColorIndex = 6 '每笔第一格加〔黄色〕底
NEXT_LINE:
Loop
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.241.96.6
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1487161425.A.8EF.html
1F:→ soyoso: 将uHead内的65536改为1048576,写判断,如uHead列号超过 02/15 20:46
2F:→ soyoso: 65535时,新增个工作表sheets.add,并将超过的部分资料移 02/15 20:48
3F:→ soyoso: 至新的工作表内,并重新判断新工作表内最後一列的储存格 02/15 20:48
4F:→ soyoso: 另外如工作表名更名上worksheet.name 02/15 20:52
5F:→ soyoso: 列号取得range.row,会传回范围中第一个区域中的第一列的 02/15 21:01
6F:→ soyoso: 列号 02/15 21:01
7F:→ aup65797: 有范例可以参考吗? 02/15 21:53
8F:→ soyoso: 上述sheets.add、worksheet.name、range.row丢goolge就有 02/15 22:00
9F:→ soyoso: 范例 02/15 22:00
10F:→ aup65797: 请问要选择Sheets("工作表n").Select..n为常数如何使用? 02/20 21:22
11F:→ aup65797: Sheets("工作表" & n).Select==>答案 02/20 21:28
12F:→ aup65797: 请问如何把Sheets.Count清为零? 02/22 07:31