如何使细胞与多种背景颜色在Excel中使用无梯度的颜色?

d7v8vwbk  于 2023-10-21  发布在  其他
关注(0)|答案(3)|浏览(155)

问题就在这里。如何使用Microsoft Excel在单元格中设置多个背景色。微软在格式单元格菜单>填充>填充效果下有一个内置的渐变功能,但它使用渐变。我想要纯色的。
我会事先警告你,我即将回答我自己的问题,但我找不到这个解决方案,但我看到很多人问。

xt0899hw

xt0899hw1#

这是我的解决方案,我发现通过改变代码,我记录的填充效果。
简而言之,去除渐变的关键是让色标彼此非常接近地改变颜色。
看我下面的例子。我会在第二个答案中给出更多的例子。

  1. Sub Macro5()
  2. '
  3. ' Macro5 Macro
  4. '
  5. 'Linear Gradients
  6. ' value description Example
  7. ' 0 Degree Vertical 1
  8. 'Example 1
  9. With Selection.Interior
  10. .Pattern = xlPatternLinearGradient
  11. .Gradient.Degree = 0
  12. .Gradient.ColorStops.Clear
  13. End With
  14. With Selection.Interior.Gradient.ColorStops.Add(0)
  15. .ThemeColor = xlThemeColorDark1
  16. End With
  17. With Selection.Interior.Gradient.ColorStops.Add(0.49)
  18. .ThemeColor = xlThemeColorDark1
  19. End With
  20. With Selection.Interior.Gradient.ColorStops.Add(0.51)
  21. .ThemeColor = xlThemeColorAccent1
  22. End With
  23. With Selection.Interior.Gradient.ColorStops.Add(1)
  24. .ThemeColor = xlThemeColorAccent1
  25. End With
  26. End Sub
展开查看全部
ne5o7dgx

ne5o7dgx2#

正如所承诺的,这里有一些不同的单元格填充方法的例子。

  1. Sub Macro6()
  2. '
  3. ' Macro5 Macro
  4. '
  5. 'Linear Gradients
  6. ' value description Example
  7. ' 90 Degree Horizontal 2
  8. ' 45 Degree Diagonal (UL,LwR Corners) 3
  9. ' 135 Degree Diagonal (LwL UR Corners) 4
  10. ' ??? Degree Whatever ofther angle you want! 5
  11. ' U = Upper, Lw = Lower, L = Left, R = Right
  12. 'Example 2
  13. ActiveCell.Offset(1, 0).Range("A1").Select
  14. With Selection.Interior
  15. .Pattern = xlPatternLinearGradient
  16. .Gradient.Degree = 90
  17. .Gradient.ColorStops.Clear
  18. End With
  19. With Selection.Interior.Gradient.ColorStops.Add(0)
  20. .ThemeColor = xlThemeColorDark1
  21. End With
  22. With Selection.Interior.Gradient.ColorStops.Add(0.49)
  23. .ThemeColor = xlThemeColorDark1
  24. End With
  25. With Selection.Interior.Gradient.ColorStops.Add(0.51)
  26. .ThemeColor = xlThemeColorAccent1
  27. End With
  28. With Selection.Interior.Gradient.ColorStops.Add(1)
  29. .ThemeColor = xlThemeColorAccent1
  30. End With
  31. 'Example 3
  32. ActiveCell.Offset(1, 0).Range("A1").Select
  33. With Selection.Interior
  34. .Pattern = xlPatternLinearGradient
  35. .Gradient.Degree = 45
  36. .Gradient.ColorStops.Clear
  37. End With
  38. With Selection.Interior.Gradient.ColorStops.Add(0)
  39. .ThemeColor = xlThemeColorDark1
  40. End With
  41. With Selection.Interior.Gradient.ColorStops.Add(0.49)
  42. .ThemeColor = xlThemeColorDark1
  43. End With
  44. With Selection.Interior.Gradient.ColorStops.Add(0.51)
  45. .ThemeColor = xlThemeColorAccent1
  46. End With
  47. With Selection.Interior.Gradient.ColorStops.Add(1)
  48. .ThemeColor = xlThemeColorAccent1
  49. End With
  50. 'Example 4
  51. ActiveCell.Offset(1, 0).Range("A1").Select
  52. With Selection.Interior
  53. .Pattern = xlPatternLinearGradient
  54. .Gradient.Degree = 135
  55. .Gradient.ColorStops.Clear
  56. End With
  57. With Selection.Interior.Gradient.ColorStops.Add(0)
  58. .ThemeColor = xlThemeColorDark1
  59. End With
  60. With Selection.Interior.Gradient.ColorStops.Add(0.49)
  61. .ThemeColor = xlThemeColorDark1
  62. End With
  63. With Selection.Interior.Gradient.ColorStops.Add(0.51)
  64. .ThemeColor = xlThemeColorAccent1
  65. End With
  66. With Selection.Interior.Gradient.ColorStops.Add(1)
  67. .ThemeColor = xlThemeColorAccent1
  68. End With
  69. 'Example 5
  70. ActiveCell.Offset(1, 0).Range("A1").Select
  71. With Selection.Interior
  72. .Pattern = xlPatternLinearGradient
  73. .Gradient.Degree = 15
  74. .Gradient.ColorStops.Clear
  75. End With
  76. With Selection.Interior.Gradient.ColorStops.Add(0)
  77. .ThemeColor = xlThemeColorDark1
  78. End With
  79. With Selection.Interior.Gradient.ColorStops.Add(0.49)
  80. .ThemeColor = xlThemeColorDark1
  81. End With
  82. With Selection.Interior.Gradient.ColorStops.Add(0.51)
  83. .ThemeColor = xlThemeColorAccent1
  84. End With
  85. With Selection.Interior.Gradient.ColorStops.Add(1)
  86. .ThemeColor = xlThemeColorAccent1
  87. End With
  88. 'Rectangular Gradients
  89. 'See Example 6
  90. 'Selecting Quadrant
  91. ' Property Value Example Result
  92. ' RectangleLeft 0 or 1 1 Upper Right Quadrant
  93. ' RectangleTop 0 or 1 0
  94. ' RectangleRight 0 or 1 1
  95. ' RectangleBottom 0 or 1 0
  96. 'Selecting Center
  97. 'See Example 7
  98. 'Value other than .5 get you off center but still off of edge
  99. ' Property Value Example Result
  100. ' RectangleLeft 0.5 1 Center
  101. ' RectangleTop 0.5 0
  102. ' RectangleRight 0.5 1
  103. ' RectangleBottom 0.5 0
  104. 'Change Size of Quadrant or Center
  105. 'see example 8,9
  106. ' Use color stops to do this
  107. ' remember to keep colr stops closs to remove gradient
  108. ' Example color stops at 0, 0.49, 0.51, 1 will give you either
  109. ' a quadrant or approximately half of center
  110. 'Example 6
  111. ActiveCell.Offset(1, 0).Range("A1").Select
  112. With Selection.Interior
  113. .Pattern = xlPatternRectangularGradient
  114. .Gradient.RectangleLeft = 1
  115. .Gradient.RectangleTop = 1
  116. .Gradient.RectangleRight = 1
  117. .Gradient.RectangleBottom = 1
  118. .Gradient.ColorStops.Clear
  119. End With
  120. With Selection.Interior.Gradient.ColorStops.Add(0)
  121. .ThemeColor = xlThemeColorDark1
  122. End With
  123. With Selection.Interior.Gradient.ColorStops.Add(0.49)
  124. .ThemeColor = xlThemeColorDark1
  125. End With
  126. With Selection.Interior.Gradient.ColorStops.Add(0.51)
  127. .ThemeColor = xlThemeColorAccent1
  128. End With
  129. With Selection.Interior.Gradient.ColorStops.Add(1)
  130. .ThemeColor = xlThemeColorAccent1
  131. End With
  132. 'Example 7
  133. ActiveCell.Offset(1, 0).Range("A1").Select
  134. With Selection.Interior
  135. .Pattern = xlPatternRectangularGradient
  136. .Gradient.RectangleLeft = 0.5
  137. .Gradient.RectangleRight = 0.5
  138. .Gradient.RectangleTop = 0.5
  139. .Gradient.RectangleBottom = 0.5
  140. .Gradient.ColorStops.Clear
  141. End With
  142. With Selection.Interior.Gradient.ColorStops.Add(0)
  143. .ThemeColor = xlThemeColorDark1
  144. End With
  145. With Selection.Interior.Gradient.ColorStops.Add(0.49)
  146. .ThemeColor = xlThemeColorDark1
  147. End With
  148. With Selection.Interior.Gradient.ColorStops.Add(0.51)
  149. .ThemeColor = xlThemeColorAccent1
  150. End With
  151. With Selection.Interior.Gradient.ColorStops.Add(1)
  152. .ThemeColor = xlThemeColorAccent1
  153. End With
  154. 'Example 8
  155. ActiveCell.Offset(1, 0).Range("A1").Select
  156. With Selection.Interior
  157. .Pattern = xlPatternRectangularGradient
  158. .Gradient.RectangleLeft = 1
  159. .Gradient.RectangleTop = 1
  160. .Gradient.RectangleRight = 1
  161. .Gradient.RectangleBottom = 1
  162. .Gradient.ColorStops.Clear
  163. End With
  164. With Selection.Interior.Gradient.ColorStops.Add(0)
  165. .ThemeColor = xlThemeColorDark1
  166. End With
  167. With Selection.Interior.Gradient.ColorStops.Add(0.69)
  168. .ThemeColor = xlThemeColorDark1
  169. End With
  170. With Selection.Interior.Gradient.ColorStops.Add(0.71)
  171. .ThemeColor = xlThemeColorAccent1
  172. End With
  173. With Selection.Interior.Gradient.ColorStops.Add(1)
  174. .ThemeColor = xlThemeColorAccent1
  175. End With
  176. 'Example 9
  177. ActiveCell.Offset(1, 0).Range("A1").Select
  178. With Selection.Interior
  179. .Pattern = xlPatternRectangularGradient
  180. .Gradient.RectangleLeft = 0.5
  181. .Gradient.RectangleRight = 0.5
  182. .Gradient.RectangleTop = 0.5
  183. .Gradient.RectangleBottom = 0.5
  184. .Gradient.ColorStops.Clear
  185. End With
  186. With Selection.Interior.Gradient.ColorStops.Add(0)
  187. .ThemeColor = xlThemeColorDark1
  188. End With
  189. With Selection.Interior.Gradient.ColorStops.Add(0.29)
  190. .ThemeColor = xlThemeColorDark1
  191. End With
  192. With Selection.Interior.Gradient.ColorStops.Add(0.31)
  193. .ThemeColor = xlThemeColorAccent1
  194. End With
  195. With Selection.Interior.Gradient.ColorStops.Add(1)
  196. .ThemeColor = xlThemeColorAccent1
  197. End With
  198. 'Example 10 (German Flag)
  199. ActiveCell.Offset(1, 0).Range("A1").Select
  200. With Selection.Interior
  201. .Pattern = xlPatternLinearGradient
  202. .Gradient.Degree = 90
  203. .Gradient.ColorStops.Clear
  204. End With
  205. With Selection.Interior.Gradient.ColorStops.Add(0)
  206. .Color = RGB(0, 0, 0)
  207. End With
  208. With Selection.Interior.Gradient.ColorStops.Add(0.329)
  209. .Color = RGB(0, 0, 0)
  210. End With
  211. With Selection.Interior.Gradient.ColorStops.Add(0.331)
  212. .Color = RGB(208, 0, 0)
  213. End With
  214. With Selection.Interior.Gradient.ColorStops.Add(0.659)
  215. .Color = RGB(208, 0, 0)
  216. End With
  217. With Selection.Interior.Gradient.ColorStops.Add(0.661)
  218. .Color = RGB(255, 206, 0)
  219. End With
  220. With Selection.Interior.Gradient.ColorStops.Add(1)
  221. .Color = RGB(255, 206, 0)
  222. End With
  223. End Sub
展开查看全部
1aaf6o9v

1aaf6o9v3#

老主题,但我在这里与另一个问题:

  1. With Selection
  2. .Interior.Pattern = xlPatternLinearGradient
  3. .Interior.Gradient.Degree = 90
  4. .Interior.Gradient.ColorStops.Clear
  5. .Interior.Gradient.ColorStops.Add(0).Color = 16777215 'no fill
  6. .Interior.Gradient.ColorStops.Add(0.23).Color = 16777215
  7. .Interior.Gradient.ColorStops.Add(0.24).Color = 15917529 'blue
  8. .Interior.Gradient.ColorStops.Add(0.76).Color = 15917529
  9. .Interior.Gradient.ColorStops.Add(0.77).Color = 16777215
  10. .Interior.Gradient.ColorStops.Add(1).Color = 16777215
  11. End With

相关问题