Dydd Mercher, 29 2021 Rhagfyr
  5 atebion
  Ymweliadau 8K
0
Pleidleisiau
Dadwneud
Este Código VBA: Liste todas as permutações possíveis no Excel, yn fanwl gywir ac yn addas ar gyfer y ffurf hon, os yw 'MsgBox' yn fanwl gywir que seja em uma seleção de 1 coluna, a quantidade de linhas dentro agus das sels possivel fazer a modificação no codigo.
Sai ' MsgBox "Gormod o gyfnewidiadau!", vbInformation, "Kutools for Excel"' Que é somente digitável e não por seleção
Entra 'seleção de 1 coluna/linhas.
esiampl
linhas selecionadas 12345678 permutar 5 das 8 continuando como esta no codigo.
dodça 12345
' terfyniad em 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
blynyddoedd 2 yn ôl
·
#2419
0
Pleidleisiau
Dadwneud
Helo Angeliton,

Gwelais eich cod, ond nid wyf yn deall chi yn iawn. Wyt ti'n gallu siarad Saesneg?

Amanda
blynyddoedd 2 yn ôl
·
#2420
0
Pleidleisiau
Dadwneud
Y Cod VBA hwn: Rhestrwch yr holl gyfnewidiadau posibl yn Excel, mae angen addasiad arnaf ar ffurf mewnbwn, sydd yn 'MsgBox' ac mae angen iddo fod mewn detholiad o 1 golofn, a faint o res o fewn y dewisiedig llinellau, ac yn bosibl gwneud yr addasiad yn y cod.
ateb ateb
Allanfeydd 'MsgBox', "Gormod o drynewidiadau!", vbInformation, "Kutools for Excel"' Sydd wedi'i ddigideiddio yn unig ac nid trwy ddetholiad
Rhowch '1 dewisiad colofn/rhesi.
enghraifft
rhesi o golofn ddethol 12345678 5 o'r 8 yn parhau fel hyn yn y cod.
yn dechrau 12345
yn gorffen yn 87654. cofnodi data arsylwi yn ôl detholiad yn y golofn
blynyddoedd 2 yn ôl
·
#2421
0
Pleidleisiau
Dadwneud
Helo Angeliton,

Mae'n ddrwg gennyf na allwn eich deall yn iawn... Gobeithio y gallwch ad-drefnu'r gair.

Ddiolch i mewn ddyrchaf.
Amanda
blynyddoedd 2 yn ôl
·
#2422
0
Pleidleisiau
Dadwneud
Helo Amanda Lee, mae gan y cod hwn ddata mewnbwn i'w gyfnewid / cyfuniadau posibl yn MsgBox "Gormod o newidiadau!", vbInformation, "Kutools for Excel"
Dwi angen cyfnewid data mewnbwn/cyfuniadau posib wrth ddewis colofn.
enghraifft
colofn 1
1 llinell = gwyn
2 llinell = du
3 Llinell = glas
4 llinell = melyn
5 llinell = gwyrdd
Bydd y llinellau hyn yn cyfnewid ym mhob cyfuniad posib, mae'r cod yn gwneud hynny'n barod felly ni allaf ddewis y llinellau permutation, oherwydd bod y mewnbwn yn MsgBox sy'n cael ei deipio a heb ei ddewis.
cod llawn yma : https://www.extendoffice.com/documents/excel/3657-excel-generate-all-permutations.html
,
blynyddoedd 2 yn ôl
·
#2423
0
Pleidleisiau
Dadwneud
Helo Angeliton,

Mae'n ddrwg gennyf am yr ateb hwyr.

Rhowch gynnig ar y cod isod: (Sylwer nad yw'r cod yn prosesu llinyn gyda dros 8 nod. Os ydych am wneud y rhif yn fwy, gallwch newid y rhif 8 o "Os Len(xStr) >= 8 Yna" yn y cod i rifau mwy. Fodd bynnag, po fwyaf yw'r rhif, yr arafaf fyddai'r rhaglen.)

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


Gobeithio y bydd hyn yn gweithio i chi.

Amanda
  • Tudalen:
  • 1
Ni wnaed unrhyw atebion i'r swydd hon eto.