2017-03-03 61 views
0

我目前正在創建一個報表工具,我有在出口從用戶表單的細節,我的數據庫(工作表Sheet1)方面的問題。多個複選框轉讓不重疊

場景: 如果用戶在用戶表單中選中了多個複選框,如何將數據從多個複選框傳輸到1行「G2」而不重疊?我使用一個命令按鈕將數據轉移到空單元格

樣品窗體:

snapshot

@麥克

Sample WorkSheet of Userform

+0

你問用戶檢查兩個盒子時會發生什麼?你能告訴我們你最終的結果是什麼樣子嗎? – Mike

+0

@Mike我有一個用戶窗體有多個複選框,如果用戶點擊提交按鈕,所有複選框將轉移到特定的列而不會相互重疊。 – N323100

+0

我附上了示例用戶窗體。謝謝, – N323100

回答

0

東西可能會奏效則是這樣的:

Private Sub CommandButton4_Click() 

    RowCount = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.count 
    With Worksheets("Sheet1").Range("A1") 
     If CheckBox1.Value = True Then 
      .Offset(RowCount, 6).Value = .Offset(RowCount, 6).Value & vbCrLf & "Unable to remove footer" 
     Else: 
      .Offset(RowCount, 6).Value = "" 
     End If 
     If CheckBox2.Value = True Then 
      .Offset(RowCount, 6).Value = .Offset(RowCount, 6).Value & vbCrLf & "Unable to use PMSectionHead as First Level header/section" 
     Else: 
      .Offset(RowCount, 6).Value = "" 
     End If 
    End With 
End Sub 

我將它添加到單元格中已有的值,並在添加每個新值之前添加一個換行符。然後,您可能必須爲每個checkbox添加一個If,因爲您正在手動添加字符串。

您需要檢查每一個,看看是否超過一個checkbox檢查。如果您在If ... ElseIf語句中包含它們,它將在第一個真實語句之後停止,而不檢查其他所有語句。

編輯

Private Sub CommandButton4_Click() 
    Dim RowCounter 
    RowCounter = 0 

    RowCount = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.count 
    With Worksheets("Sheet1").Range("A1") 
     If CheckBox1.Value = True Then 
      .Offset(RowCount + RowCounter, 6).Value = .Offset(RowCount + RowCounter, 6).Value & vbCrLf & "Unable to remove footer" 
      RowCounter = RowCounter + 1 
     Else: 
      .Offset(RowCount, 6).Value = "" 
     End If 
     If CheckBox2.Value = True Then 
      .Offset(RowCount + RowCounter, 6).Value = .Offset(RowCount + RowCounter, 6).Value & vbCrLf & "Unable to use PMSectionHead as First Level header/section" 
      RowCounter = RowCounter + 1 
     Else: 
      .Offset(RowCount, 6).Value = "" 
     End If 
    End With 
End Sub 

我添加了一個計數器來分,如果任何複選框都被檢查,將計算和去很多行與0行開始向下下跌1個箱檢查。不完全確定那是你正在尋找的東西,但我認爲它會爲你工作。

+0

謝謝邁克!當我同時檢查checkbox1和checkbox 2時,我遇到了一些問題,它們出現在同一行(G2)上,我希望它們在不同行上分開,複選框1應該在G2下,複選框2在行G3下,如果它們是兩者都由用戶選擇。非常感謝你的幫助。 :) – N323100

+0

是的這是工作,如果我檢查這兩個複選框,但如果我只選擇1複選框它不會出現在行中。感謝您的幫助,非常感謝! – N323100

+0

我不明白你的意思*它沒有出現在行*? – Mike