By Aingeal Dé Céadaoin, 29 Nollaig 2021
Posted in Excel
Freagraí 5
Is maith 0
tuairimí 8K
Vótaí 0
Is é an Código VBA: Déan liosta de na roghanna atá ann cheana féin nó Excel, is é an ceart atá agat ná an fhoirm iontrála, an méid atá i 'MsgBox' agus an méid atá leagtha síos de 1 cholna, agus an méid atá leagtha síos de na cinn is fearr a bhfuil an t-ainm bunaidh acu. possivel fazer agus modhnú gan cód.
Sai 'MsgBox "An iomarca iomalartaithe!", vbInformation, "Kutools le haghaidh Excel"' Is é an rud a d'fhéadfadh a bheith agat ná an t-athrú a dhéanamh
Entra 'seleção de 1 coluna/linhas.
eiseamláir
roghnúcháin lín 12345678 permutar 5 das 8 leanúint mar sin nó cód.
12345
críochfort 87654.

'Sub
GetString()

'Updateby Extendoffice

    
Dim
xStr 
As
String

    
Dim
FRow 
As
Long

    
Dim
xScreen 
As
Boolean

    
xScreen = Application.ScreenUpdating

    
Application.ScreenUpdating = 
False

    
xStr = Application.InputBox(
"Enter text to permute:"
"Kutools for Excel"
, , , , , , 2)

    
If
Len(xStr) < 2 
Then
Exit
Sub

    
If
Len(xStr) >= 8 
Then

        
MsgBox 
"Too many permutations!"
, vbInformation, 
"Kutools for Excel"

        
Exit
Sub

    
Else

        
ActiveSheet.Columns(1).Clear

        
FRow = 1

        
Call
GetPermutation(
""
, xStr, FRow)

    
End
If

    
Application.ScreenUpdating = xScreen

End
Sub

Sub
GetPermutation(Str1 
As
String
, Str2 
As
String
ByRef
xRow 
As
Long
)

    
Dim
As
Integer
, xLen 
As
Integer

    
xLen = Len(Str2)

    
If
xLen < 2 
Then

        
Range(
"A"
& xRow) = Str1 & Str2

        
xRow = xRow + 1

    
Else

        
For
i = 1 
To
xLen

            
Call
GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)

        
Next

    
End
If

'End
Sub
Dia duit Angeliton,

Chonaic mé do chód, ach ní thuigim go leor thú. An bhfuil Béarla agat?

Amanda
·
blianta 2 shin
·
0 Is maith
·
0 Vóta
·
0 Comments
·
An Cód VBA seo: Liostaigh gach iomalartú féideartha in Excel, tá modhnú de dhíth orm i bhfoirm ionchuir, atá i 'MsgBox' agus is gá dom é a bheith i rogha 1 cholún, agus an méid as a chéile laistigh den roghnaithe línte, agus is féidir a dhéanamh ar an modhnú ar an gcód.
freagra freagra
Scoir 'MsgBox', "An iomarca iomalartaithe!", vbInformation, "Kutools for Excel"' Atá digitithe amháin agus nach bhfuil de réir roghnúcháin
Cuir isteach '1 cholún/roghnú sraitheanna.
Mar shampla,
sraitheanna de cholún roghnaithe 12345678 5 de na 8 ag leanúint mar seo i gcód.
tosaíonn 12345
chríochnaíonn sé in 87654. iontráil sonraí breathnadóireachta de réir roghnúcháin sa cholún
·
blianta 2 shin
·
0 Is maith
·
0 Vóta
·
0 Comments
·
Dia duit Angeliton,

Tá brón orm nach raibh mé in ann tú a thuiscint go hiomlán... Tá súil agam gur féidir leat an focal a atheagrú.

Go raibh maith agat roimh ré.
Amanda
·
blianta 2 shin
·
0 Is maith
·
0 Vóta
·
0 Comments
·
Dia duit Amanda Lee, tá sonraí ionchuir ag an gcód seo le malartú / comhcheangail fhéideartha i MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
Teastaíonn uaim sonraí ionchuir a mhalartú/teaglaim fhéideartha i roghnú na gcolún.
Mar shampla,
colún 1
1 líne = bán
2 líne = dubh
3 Líne = gorm
4 líne = buí
5 líne = glas
Malartóidh na línte seo i ngach meascán féideartha, déanann an cód é sin cheana féin ionas nach féidir liom na línte iomalartaithe a roghnú, toisc gur MsgBox an t-ionchur atá clóscríofa agus nach bhfuil roghnaithe.
Tá cód iomlán anseo : https://www.extendoffice.com/documents/excel/3657-excel-generate-all-permutations.html
,
·
blianta 2 shin
·
0 Is maith
·
0 Vóta
·
0 Comments
·
Dia duit Angeliton,

Tá brón orm as an bhfreagra déanach.

Bain triail as an gcód thíos le do thoil: (Tabhair faoi deara nach bpróiseálann an cód teaghrán le níos mó ná 8 gcarachtar. Más mian leat an uimhir a mhéadú, is féidir leat an uimhir 8 de "Má Len(xStr) >= 8 Ansin" a athrú sa cód le huimhreacha níos mó. Mar sin féin, dá mó an uimhir, is amhlaidh is moille a bheidh an clár.)

Sub GetString()
'Updateby Extendoffice
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
Dim Rg, xRg As Range
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xRg = Application.InputBox("Enter text to permute:", "Kutools for Excel", , , , , , 8)
xStr = ""
For Each Rg In xRg
xStr = xStr + Rg.Text
Next
If Len(xStr) < 2 Then Exit Sub
If Len(xStr) >= 8 Then
MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
Exit Sub
Else
ActiveSheet.Columns(1).Clear
FRow = 1
Call GetPermutation("", xStr, FRow)
End If
Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
Dim i As Integer, xLen As Integer
xLen = Len(Str2)
If xLen < 2 Then
Range("A" & xRow) = Str1 & Str2
xRow = xRow + 1
Else
For i = 1 To xLen
Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
Next
End If
End Sub


Tá súil agam go n-oibríonn sé seo duit.

Amanda
·
blianta 2 shin
·
0 Is maith
·
0 Vóta
·
0 Comments
·
Féach ar an bPost Iomlán