国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

Vba代碼報(bào)錯(cuò)?

網(wǎng)友解答: '從字面來(lái)分析: bg.Name = Sheet1.Cells(i, l)'其完整寫法如下: bg.Name = Sheet1.Cells(i, l).Value'意思是:工

網(wǎng)友解答:

'從字面來(lái)分析: bg.Name = Sheet1.Cells(i, l)

'其完整寫法如下: bg.Name = Sheet1.Cells(i, l).Value

'意思是:工作表bg的名稱和Sheet1.Cells(i,l)里存儲(chǔ)的值相同

'結(jié)合你前面的代碼:

'If Sheets.Count 1 then這段實(shí)際上就是把除了名稱為"Sheet1"的工作表以外的其他工作表都刪除了。

'下面For each bg In Sheets,這一行實(shí)際就沒(méi)意義了,因?yàn)镾heets里總共就只有一個(gè)成員。


'沒(méi)有文檔,嘗試猜測(cè)一下你的意思:

'1、L記錄用戶輸入的列號(hào),從下文看,L是列號(hào),并不是行

'2、關(guān)閉刪除表時(shí)的提示

'3、刪除除"Sheet1"以外的所有工作表

'4、開(kāi)啟提示,這里應(yīng)該是True

'5、然后重新根據(jù)"Sheet1"的(2-最后行L列)的內(nèi)容新建一系列工作表

'6、然后從Sheet1中篩選數(shù)據(jù),并逐個(gè)存儲(chǔ)到新建的一系列工作表中去


'以下我先抱個(gè)歉:

'1.代碼可讀性實(shí)在是太差了

'2.邏輯上不清楚的地方比較多


'我稍微理一下,僅供參考:

Sub SheetSplit()

Application.ScreenUpdating = False '關(guān)閉屏幕刷新,提高執(zhí)行效率

Dim i&, j&, aRow&

Dim bk As Workbook

Dim sht As Worksheet

Dim shtNew As Worksheet

Set bk = ThisWorkbook

j = InputBox("以哪一列為基準(zhǔn)?")

'刪除工作表

Application.DisplayAlerts = False

For Each sht In bk.Worksheets

If sht.Name < "Sheet1" Then sht.Delete

Next sht

Application.DisplayAlerts = True

'重建工作表

Set sht = bk.Worksheets("Sheet1")

aRow = sht.Range("A" & sht.Rows.Count).End(xlUp).Row

For i = 2 To aRow

If False = SheetExist(bk, sht.Cells(i, L)) Then

Set shtName = bk.Worksheets.Add(After:=bk.Worksheets(bk.Worksheets.Count))

shtNew.Name = sht.Cells(i, j).Value

'實(shí)際可以這么簡(jiǎn)寫,但是新手沒(méi)有判斷能力,不推薦

'bk.Worksheets.Add(After:=bk.Worksheets(bk.Worksheets.Count)).Name = sht.Cells(i, j).Value

End If

Next i

'拆分?jǐn)?shù)據(jù)

For i = 2 To bk.Worksheets.Count

'這里實(shí)在猜不下去了,又來(lái)了一個(gè)"A1:D1943"列,F(xiàn)ield:=4,實(shí)在猜不透想作甚

'算了,繼續(xù)猜,假設(shè)是對(duì)用戶輸入的"L"列做篩選

Set shtNew = bk.Worksheets(i)

sht.Range(sht.Cells(1, 1), sht.Cells(1943, L)).AutoFilter Field:=L, Criterial:=shtNew.Name

sht.Range("A1:" & L & aRow).Copy shtNew.Range("A1") '這兩行代碼未驗(yàn)證,直接抄的你的

Next i

Application.ScreenUpdating = True

End Sub

Function SheetExist(bk As Workbook, ByVal shtName As String) As Boolean

Err.Clear

On Error Resume Next

Dim shtTemp As Worksheet

Set shtTemp = bk.Worksheets(shtName)

SheetExist = (Err.Number = 0)

End Function

網(wǎng)友解答:

很明顯引用對(duì)象不存在。

標(biāo)簽: