成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Vba代碼報錯?

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

網(wǎng)友解答:

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

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

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

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

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

'下面For each bg In Sheets,這一行實際就沒意義了,因為Sheets里總共就只有一個成員。


'沒有文檔,嘗試猜測一下你的意思:

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

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

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

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

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

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


'以下我先抱個歉:

'1.代碼可讀性實在是太差了

'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("以哪一列為基準?")

'刪除工作表

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

'實際可以這么簡寫,但是新手沒有判斷能力,不推薦

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

End If

Next i

'拆分數(shù)據(jù)

For i = 2 To bk.Worksheets.Count

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

'算了,繼續(xù)猜,假設(shè)是對用戶輸入的"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") '這兩行代碼未驗證,直接抄的你的

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)友解答:

很明顯引用對象不存在。

標簽: